[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