[pyar] leer csv con pandas
Ariel Rossanigo
arielrossanigo en gmail.com
Mar Nov 8 21:53:20 ART 2016
Buenas, creo que el problema viene por el espacio luego del separador,
podés evitarlo así:
pd.read_csv('prueba.csv', quotechar="'", skipinitialspace=True)
Saludos
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/8e7f6905/attachment.html>
Más información sobre la lista de distribución pyar