繁体   English   中英

使用pandas.read_csv设置标头

[英]Set the headers using pandas.read_csv

我有一个csv文件,我使用pandas API读入数据帧。 我打算设置自己的标头而不是默认的第一行。 (我也摆脱了一些行。)我如何才能最好地实现这一目标?

我尝试了以下但是这没有按预期工作:

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)

这给出了以下错误 -

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

然后我尝试通过设置列

df.columns = header_row

但这可能是由于重复的列值导致错误。

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')

我正在使用pandas 0.7.3版本。 从文档 -

names:类似列名列表

我相信我在这里缺少一些简单的东西。 感谢您的帮助。

Pandas 0.7.3不支持索引重复。 您需要至少0.8.0,介于0.8.0和0.8.1之间,索引中重复的几个问题是固定的,因此0.8.1(=最近的稳定版本)可能是最佳的。 但是,即使0.8.1也不能解决您的问题,因为此版本存在重复列名称的问题 (您无法显示具有重复列名称的数据框)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM