当前位置:   article > 正文

python中删除unnamed_如何摆脱熊猫DataFrame中的“未命名:0”列?

python dataframe 删除unnamed: 0 列

由于您的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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/851713
推荐阅读
相关标签
  

闽ICP备14008679号