[pyar] leer csv con pandas
Nats
taku246 en gmail.com
Mie Nov 9 09:17:19 ART 2016
Buenas, tengo entendido que tenias problemas con las comillas, has probado
usando la funcion str() ?
saludos
>
> Message: 5
> Date: Tue, 8 Nov 2016 20:12:46 -0300
> From: Javier Marcon <javiermarcon en gmail.com>
> To: Python Argentina <pyar en python.org.ar>
> Subject: [pyar] leer csv con pandas
> Message-ID: <8eb7f113-d2a8-b5fb-35ba-27d9a92a19f4 en gmail.com>
> Content-Type: text/plain; charset=windows-1252
>
> Hola, tengo un log en formato csv que quiero graficar con pandas, pero
> el tema es que cuando lo leo no logro que me saque los caracteres que
> que encierran los datos. El csv está escrito asi:
>
> javier en javier-System-Product-Name:~$ head -5 /var/log/postgres_locks.log
> 'date', 'cpu', 'ram', 'wait', 'si', 'so', 'conexiones', 'locks',
> 'ratio', 'writeclean', 'buffers'
> '17-10-2016 21:10:01', '0.9', '16', '2000040', '0', '0', '22', '6916',
> '3301.0274389854664426', '0', '12953'
> '17-10-2016 21:20:01', '0.9', '16', '2000040', '0', '0', '22', '6916',
> '3301.0430301885955688', '0', '12953'
> '17-10-2016 21:30:02', '0.9', '16', '2000040', '0', '0', '22', '6916',
> '3301.0583613479540200', '0', '12954'
> '17-10-2016 21:40:01', '0.9', '16', '2000040', '0', '0', '22', '6916',
> '3301.0739223134353932', '0', '12954'
> javier en javier-System-Product-Name:~$
>
> Y en un ipython notebook pongo:
>
> import pandas as pd
> import numpy as np
> import matplotlib.pyplot as plt
> %matplotlib inline
> datos =pd.read_csv("/var/log/datos.log", sep=', ', quotechar="'")
> datos.head()
>
> y obtengo:
>
>
> 'date' 'cpu' 'ram' 'wait' 'si' 'so' 'conexiones'
> 'locks'
> 'ratio' 'writeclean' 'buffers'
> 0 '17-10-2016 21:10:01' '0.9' '16' '2000040' '0'
> '0' '22' '6916'
> '3301.0274389854664426' '0' '12953'
> 1 '17-10-2016 21:20:01' '0.9' '16' '2000040' '0'
> '0' '22' '6916'
> '3301.0430301885955688' '0' '12953'
> 2 '17-10-2016 21:30:02' '0.9' '16' '2000040' '0'
> '0' '22' '6916'
> '3301.0583613479540200' '0' '12954'
> 3 '17-10-2016 21:40:01' '0.9' '16' '2000040' '0'
> '0' '22' '6916'
> '3301.0739223134353932' '0' '12954'
> 4 '17-10-2016 21:50:01' '0.8' '16' '2000040' '0'
> '0' '22' '6916'
> '3301.0893892062348686' '0' '12954'
>
> 5 rows × 11 columns
>
>
> El tema es que me quedan los datos como texto:
>
>
> In [29]:
>
> datos.dtypes
>
> Out[29]:
>
> 'date' object
> 'cpu' object
> 'ram' object
> 'wait' object
> 'si' object
> 'so' object
> 'conexiones' object
> 'locks' object
> 'ratio' object
> 'writeclean' object
> 'buffers' object
> dtype: object
>
>
> In [33]:
>
> datos.columns
>
> Out[33]:
>
> Index([u''date'', u''cpu'', u''ram'', u''wait'', u''si'', u''so'',
> u''conexiones'', u''locks'', u''ratio'', u''writeclean'', u''buffers''],
> dtype='object')
>
>
> Probé varias cosas, como por ejemplo pasarle dtype={"'locks'":
> np.float64} a read_csv, pero no logro solucionarlo.
>
> Como puedo hacer que los datos que lea me los tome sin comillas, que los
> nombres de las columnas no tengan comillas y que los números sean números?
>
> Gracias,
>
> Javier.
>
> --
> El matrimo es tan bueno que la gente se muere por casarse
> con mujeres como Nazarena Velez, Margerie Orbin,
> Jordania Linn Graham, Katherine Knight, Stacey Castor, etc.
>
>
>
> ------------------------------
>
> Message: 6
> Date: Tue, 8 Nov 2016 21:30:24 -0300
> From: Santiago Avendaño <santiavenda2 en gmail.com>
> To: Python Argentina <pyar en python.org.ar>
> Subject: Re: [pyar] leer csv con pandas
> Message-ID:
> <CAF4zDh=fMcUx=ZJ07zzS_AgS=ZiWZAxX0MSK9Bd2B3S-E6CEUA en mail.
> gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Javier,
>
> Me parece que lo que te está molestanto ahí son las comillas simples.
>
> Hay dos parámetros de la funcion read_csv[0] que te podrían servir:
>
> - converters: le podes pasar un diccionario(column_name,
> funcion_de_conversion), donde funcion_de_conversion es la función que
> elimina las comillas y te convierte el dato al tipo requerido
> - names: que te permite setear el nombre de las columnas (por ejemplo
> podrías pasarle ['date', 'cpu', 'ram', 'wait', 'si', 'so', 'conexiones',
> 'locks', 'ratio', 'writeclean', 'buffers'])
>
> Avisame si podes resolverlo con estos parámetros y sino lo vemos con más
> detalle.
>
> Saludos
>
> [0]
> http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html
>
> Santiago Avendaño
> http://about.me/santiavenda2
>
> El 8 de noviembre de 2016, 20:12, Javier Marcon <javiermarcon en gmail.com>
> escribió:
>
> > Hola, tengo un log en formato csv que quiero graficar con pandas, pero
> > el tema es que cuando lo leo no logro que me saque los caracteres que
> > que encierran los datos. El csv está escrito asi:
> >
> > javier en javier-System-Product-Name:~$ head -5 /var/log/postgres_locks.log
> > 'date', 'cpu', 'ram', 'wait', 'si', 'so', 'conexiones', 'locks',
> > 'ratio', 'writeclean', 'buffers'
> > '17-10-2016 21:10:01', '0.9', '16', '2000040', '0', '0', '22', '6916',
> > '3301.0274389854664426', '0', '12953'
> > '17-10-2016 21:20:01', '0.9', '16', '2000040', '0', '0', '22', '6916',
> > '3301.0430301885955688', '0', '12953'
> > '17-10-2016 21:30:02', '0.9', '16', '2000040', '0', '0', '22', '6916',
> > '3301.0583613479540200', '0', '12954'
> > '17-10-2016 21:40:01', '0.9', '16', '2000040', '0', '0', '22', '6916',
> > '3301.0739223134353932', '0', '12954'
> > javier en javier-System-Product-Name:~$
> >
> > Y en un ipython notebook pongo:
> >
> > import pandas as pd
> > import numpy as np
> > import matplotlib.pyplot as plt
> > %matplotlib inline
> > datos =pd.read_csv("/var/log/datos.log", sep=', ', quotechar="'")
> > datos.head()
> >
> > y obtengo:
> >
> >
> > 'date' 'cpu' 'ram' 'wait' 'si' 'so' 'conexiones'
> > 'locks'
> > 'ratio' 'writeclean' 'buffers'
> > 0 '17-10-2016 21:10:01' '0.9' '16' '2000040' '0'
> > '0' '22' '6916'
> > '3301.0274389854664426' '0' '12953'
> > 1 '17-10-2016 21:20:01' '0.9' '16' '2000040' '0'
> > '0' '22' '6916'
> > '3301.0430301885955688' '0' '12953'
> > 2 '17-10-2016 21:30:02' '0.9' '16' '2000040' '0'
> > '0' '22' '6916'
> > '3301.0583613479540200' '0' '12954'
> > 3 '17-10-2016 21:40:01' '0.9' '16' '2000040' '0'
> > '0' '22' '6916'
> > '3301.0739223134353932' '0' '12954'
> > 4 '17-10-2016 21:50:01' '0.8' '16' '2000040' '0'
> > '0' '22' '6916'
> > '3301.0893892062348686' '0' '12954'
> >
> > 5 rows × 11 columns
> >
> >
> > El tema es que me quedan los datos como texto:
> >
> >
> > In [29]:
> >
> > datos.dtypes
> >
> > Out[29]:
> >
> > 'date' object
> > 'cpu' object
> > 'ram' object
> > 'wait' object
> > 'si' object
> > 'so' object
> > 'conexiones' object
> > 'locks' object
> > 'ratio' object
> > 'writeclean' object
> > 'buffers' object
> > dtype: object
> >
> >
> > In [33]:
> >
> > datos.columns
> >
> > Out[33]:
> >
> > Index([u''date'', u''cpu'', u''ram'', u''wait'', u''si'', u''so'',
> > u''conexiones'', u''locks'', u''ratio'', u''writeclean'', u''buffers''],
> > dtype='object')
> >
> >
> > Probé varias cosas, como por ejemplo pasarle dtype={"'locks'":
> > np.float64} a read_csv, pero no logro solucionarlo.
> >
> > Como puedo hacer que los datos que lea me los tome sin comillas, que los
> > nombres de las columnas no tengan comillas y que los números sean
> números?
> >
> > Gracias,
> >
> > Javier.
> >
> > --
> > El matrimo es tan bueno que la gente se muere por casarse
> > con mujeres como Nazarena Velez, Margerie Orbin,
> > Jordania Linn Graham, Katherine Knight, Stacey Castor, etc.
> >
> > _______________________________________________
> > pyar mailing list pyar en python.org.ar
> > http://listas.python.org.ar/listinfo/pyar
> >
> > PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
> >
> > La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> > Argentina - http://www.usla.org.ar
> ------------ próxima parte ------------
> Se ha borrado un adjunto en formato HTML...
> URL: <http://listas.python.org.ar/pipermail/pyar/attachments/
> 20161108/74237d18/attachment.html>
>
> ------------------------------
>
> Subject: Pié de página del digest
>
> _______________________________________________
> pyar mailing list
> pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
>
> ------------------------------
>
> Fin de Resumen de pyar, Vol 81, Envío 12
> *****************************************
>
--
NATS
*Cuando le preguntaron adonde queria llegar Charlie Parker contesto:*
*"Quiero llegar a notas hermosas"*"
P *Please consider the environment before printing this email*
*Por favor, tené en cuenta el medio ambiente antes de imprimir este imail. *
*Join the campaign at http://thinkBeforePrinting.org
<http://thinkbeforeprinting.org/> *
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20161109/074bb272/attachment-0001.html>
Más información sobre la lista de distribución pyar