刪除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
補充:【pandas】pandas每次使用append追加行時都生成一個Unnamed列
pandas每次使用append追加行時多出一個Unnamed列!
解決辦法:
追加行數據前,read_csv函數讀取數據時, 增加 index_col 參數,指定哪一行為索引行。
如:
test = pd.read_csv(filename,index_col=0)
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- python pandas合並Sheet,處理列亂序和出現Unnamed列的解決
- python數學建模之三大模型與十大常用算法詳情
- 簡單且有用的Python數據分析和機器學習代碼
- Python中的pandas表格模塊、文件模塊和數據庫模塊
- python pandas處理excel表格數據的常用方法總結