python中删除unnamed_如何摆脱熊猫DataFrame中的“未命名: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

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值