如何删除pandas中产生的Unnamed:0列

我们在数据处理,往往不小心,pandas会“主动”加上行和列的名称,我现在就遇到了这个问题。这个是pandas中to_csv生成的数据各种拼接之后的最终数据(默认参数,index=True,column=True)

Unnamed: 0            ip  Unnamed: 0.1  ...       766       767  class
0           0    google.com             0  ...  0.376452  0.148091      0
1           1  facebook.com             1  ... -0.044634 -0.180167      0
2           2   youtube.com             2  ...  0.172028  0.002102      0
3           3     yahoo.com             3  ...  0.286067 -0.269647      0
4           4     baidu.com             4  ...  0.034892  0.445554      0

我们可以看到,第一列 Unnamed:0 ,第三列Unnamed:0,这两列是我们不想需要的数据,产生原因是我们在生成csv文件的时候,采用的是默认参数,我们可以在生成csv时候,可以使用下面参数解决这一个问题。

to_csv()时候,设置index=False。或者加上index=True, index_label="id"

 

另外有其他同学会说了,我不想重复的再进行一遍数据处理工作,我就想在我们生成这个CSV中处理,一样是可以的,事实是我也是这么做的。

import pandas as pd

data = pd.read_csv('finalData.csv')
print('一共有多少个样本呢?', len(data))
print('展示样本前4个数据')
print(data.head())
print('打印样本集的其他详细信息:')
print(data.info())
print('=============================开始处理:==============================')
newData = data.loc[:, ~data.columns.str.contains('^Unnamed')]
print(newData.head())
newData.to_csv('myVecData.csv', index=False)

别忘了index=False,不然又生成一列新的这个不讨人喜欢的东西了。列处理也是一样,有参数column=False,不再赘述。

最后效果:

=============================开始处理:==============================
             ip         0         1  ...       766       767  class
0    google.com  0.282674 -0.359200  ...  0.376452  0.148091      0
1  facebook.com  0.542586 -0.390693  ... -0.044634 -0.180167      0
2   youtube.com  0.598675 -0.679748  ...  0.172028  0.002102      0
3     yahoo.com  0.212740 -0.823602  ...  0.286067 -0.269647      0
4     baidu.com  0.017386 -0.355357  ...  0.034892  0.445554      0

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值