使用pandas.read_cs设置标题

2024-06-09 08:48:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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')

我正在使用熊猫0.7.3版本。 从文件中-

名称:类似数组 列名列表

我肯定我遗漏了一些简单的东西。谢谢你的帮助。


Tags: csvinpyiocorepandasreadparty
1条回答
网友
1楼 · 发布于 2024-06-09 08:48:58

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

相关问题 更多 >