我們?cè)跀?shù)據(jù)處理,往往不小心,pandas會(huì)“主動(dòng)”加上行和列的名稱,我現(xiàn)在就遇到了這個(gè)問題。
這個(gè)是pandas中to_csv生成的數(shù)據(jù)各種拼接之后的最終數(shù)據(jù)(默認(rèn)參數(shù),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,這兩列是我們不想需要的數(shù)據(jù),產(chǎn)生原因是我們?cè)谏蒫sv文件的時(shí)候,采用的是默認(rèn)參數(shù),我們可以在生成csv時(shí)候,可以使用下面參數(shù)解決這一個(gè)問題。
to_csv()時(shí)候,設(shè)置index=False?;蛘呒由蟟ndex=True, index_label="id"
另外有其他同學(xué)會(huì)說了,我不想重復(fù)的再進(jìn)行一遍數(shù)據(jù)處理工作,我就想在我們生成這個(gè)CSV中處理,一樣是可以的,事實(shí)是我也是這么做的。
import pandas as pd
data = pd.read_csv('finalData.csv')
print('一共有多少個(gè)樣本呢?', len(data))
print('展示樣本前4個(gè)數(shù)據(jù)')
print(data.head())
print('打印樣本集的其他詳細(xì)信息:')
print(data.info())
print('=============================開始處理:==============================')
newData = data.loc[:, ~data.columns.str.contains('^Unnamed')]
print(newData.head())
newData.to_csv('myVecData.csv', index=False)
別忘了index=False,不然又生成一列新的這個(gè)不討人喜歡的東西了。列處理也是一樣,有參數(shù)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
補(bǔ)充:【pandas】pandas每次使用append追加行時(shí)都生成一個(gè)Unnamed列
pandas每次使用append追加行時(shí)多出一個(gè)Unnamed列!
解決辦法:
追加行數(shù)據(jù)前,read_csv函數(shù)讀取數(shù)據(jù)時(shí), 增加 index_col 參數(shù),指定哪一行為索引行。
如:
test = pd.read_csv(filename,index_col=0)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- 詳解pandas刪除缺失數(shù)據(jù)(pd.dropna()方法)
- 在pandas中一次性刪除dataframe的多個(gè)列方法
- Python中pandas dataframe刪除一行或一列:drop函數(shù)詳解
- 修改Pandas的行或列的名字(重命名)