赞
踩
由于您的CSV及其CSV文件RangeIndex(通常没有名称)一起保存,因此很可能出现此问题。在保存DataFrame时,实际上需要完成此修复,但这并不总是一种选择。
避免问题:read_csv带有index_col 参数
IMO,最简单的解决方案是将未命名的列作为index读取。将index_col=[0]参数指定为pd.read_csv,它将在第一列中读取作为索引。
df = pd.DataFrame('x', index=range(5), columns=list('abc'))
df
a b c
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
# Save DataFrame to CSV.
df.to_csv('file.csv')
pd.read_csv('file.csv')
Unnamed: 0 a b c
0 0 x x x
1 1 x x x
2 2 x x x
3 3 x x x
4 4 x x x
# Now try this again, with the extra argument.
pd.read_csv('file.csv', index_col=[0])
a b c
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
注意如果DataFrame没有索引开头,则可以
通过index=False在创建输出CSV时使用来避免这种情况。
df.to_csv('file.csv', index=False)
但是如上所述,这并不总是一种选择。
权宜之计解决方案:使用 str.match
如果您无法修改用于读取/写入CSV文件的代码,则可以使用以下过滤条件来删除该列str.match:
df
Unnamed: 0 a b c
0 0 x x x
1 1 x x x
2 2 x x x
3 3 x x x
4 4 x x x
df.columns
# Index(['Unnamed: 0', 'a', 'b', 'c'], dtype='object')
df.columns.str.match('Unnamed')
# array([ True, False, False, False])
df.loc[:, ~df.columns.str.match('Unnamed')]
a b c
0 x x x
1 x x x
2 x x x
3 x x x
4 x x x
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。