python中删除unnamed_如何去掉pandas数据框中的“未命名:0”列?

当CSV文件保存时,可能会出现'Unnamed: 0'列。解决方法是在读取CSV时使用index_col参数,或者通过str.match过滤并删除该列。若无法修改保存代码,可以使用df.loc[:, ~df.columns.str.match('Unnamed')]来过滤。" 111953017,10547797,Jackson驼峰转下划线转换配置,"['Jackson配置', 'JSON转换', 'Spring MVC集成', '对象映射']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个问题很可能是由于CSV和它的RangeIndex(通常没有名称)一起保存的。在保存数据帧时,实际上需要进行修复,但这并不总是一个选项。

避免问题:read_csv使用index_col参数

在IMO中,最简单的解决方案是将未命名的列读为索引。为^{}指定一个index_col=[0]参数,这将读取第一列作为索引。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 xNote

You could have avoided this in the first place by

using index=False when creating the output CSV, if your DataFrame does not have an index to begin

with.df.to_csv('file.csv', index=False)

But as mentioned above, this isn't always an option.

权宜之计:用str.match过滤

如果您不能修改代码来读/写CSV文件,您可以使用^{}过滤来删除列: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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值