2012-08-22 19 views
7

Tengo un archivo csv que leo en un marco de datos utilizando la API pandas. Tengo la intención de establecer mi propio encabezado en lugar de la primera fila predeterminada. (También me deshago de algunas de las filas.) ¿Cómo puedo lograr esto?Establezca los encabezados usando pandas.read_csv

He intentado lo siguiente, pero esto no funcionó como se esperaba:

header_row=['col1','col2','col3','col4', 'col1', 'col2'] # note the header has duplicate column values 
df = pandas.read_csv(csv_file, skiprows=[0,1,2,3,4,5], names=header_row) 

Esto da siguiente error -

File "third_party/py/pandas/io/parsers.py", line 187, in read_csv 
File "third_party/py/pandas/io/parsers.py", line 160, in _read 
File "third_party/py/pandas/io/parsers.py", line 628, in get_chunk 
File "third_party/py/pandas/core/frame.py", line 302, in __init__ 
File "third_party/py/pandas/core/frame.py", line 388, in _init_dict 
File "third_party/py/pandas/core/internals.py", line 1008, in form_blocks 
File "third_party/py/pandas/core/internals.py", line 1036, in _simple_blockify 
File "third_party/py/pandas/core/internals.py", line 1068, in _stack_dict 
IndexError: index out of bounds 

Luego trató de configuración a través de las columnas

df.columns = header_row 

Pero este error se eliminó probablemente debido a valores de columna duplicados.

File "engines.pyx", line 101, in pandas._engines.DictIndexEngine.get_loc  
(third_party/py/pandas/src/engines.c:2498) 
File "engines.pyx", line 107, in pandas._engines.DictIndexEngine.get_loc 
(third_party/py/pandas/src/engines.c:2447) 
Exception: ('Index values are not unique', 'occurred at index entity') 

Estoy usando pandas 0.7.3 versión. De la documentación -

nombres: Arsenal-como lista de nombres de columna

estoy seguro de que me falta algo sencillo aquí. Gracias por cualquier ayuda aquí.

Respuesta

1

Pandas 0.7.3 no admite duplicados de índice. Necesita al menos 0.8.0, entre 0.8.0 y 0.8.1 varios problemas con duplicados en el índice son fijos, por lo que 0.8.1 (= versión estable más reciente) podría ser lo mejor. Sin embargo, incluso 0.8.1 no es una respuesta a su problema, porque esta versión tiene un issue con nombres de columna duplicados (no puede mostrar un marco de datos con nombres de columna duplicados).

+0

Gracias por las referencias. Revisé y me deshice del requisito de valores duplicados de columna. – Manju

Cuestiones relacionadas