pandas操做txt文件的方便之處

有時候到手的數據基本是固定分隔符分隔的幾個文件,須要重裏面作一些數據統計,好比去重,計算某一列的和,兩個文件的並集等等,若是可以像sql同樣操做txt文件就行了,這就是pandas帶來的好處html

如何加載txt文件?

示例文件數據 papa.txtpython

paxi_id grade
  1       50
  2       50
  3       100
  4       200
  3       100
  5       100
 
複製代碼

安裝好jupyter ,在文件目錄中運行jupyter notebook,在打開的瀏覽器界面上,選擇python運行 sql

在打開的界面上,運行加載的命令

import pandas #引入pandas
papa=pandas.read_csv('papa.txt',sep='\t') #加載papa.txt,指定它的分隔符是 \t
papa.head() #顯示數據的前幾行
複製代碼

能夠看到加載的結果直觀的用表格展現瀏覽器

如何知道剛加載的數據有幾行?有幾列?

運行指令以下bash

rowNum=papa.shape[0] #不包括表頭
colNum=papa.columns.size
複製代碼

結果爲ui

如何根據一列對整個數據進行去重?

運行指令以下spa

uPapa=papa.drop_duplicates(['paxi_id'])
複製代碼

結果以下3d

如何獲取一列的去重的值?去重後有多少個?

運行指令以下code

uPaxiId=papa['paxi_id'].unique()
print("uPaxiId:",uPaxiId)
totalUPaxiIdNum=uPaxiId.size
print("num:",totalUPaxiIdNum)
複製代碼

運行結果以下cdn

如何計算一列的和?

運行指令以下

papa['grade'].sum()
複製代碼

結果以下

如何過濾特定的值的行?

運行指令以下

papa[ ( papa['grade'] == 50 ) | ( papa['grade'] == 100 ) ]
複製代碼

結果以下

如何計算某一列各個取值的個數?

運行指令以下

gPapa=papa.groupby('grade').size()
複製代碼

結果以下

如何計算其中兩個或者全部的和?

運行指令以下

v=gPapa[50]+gPapa[100]
print("兩個的和:",v)
print("總和:",gPapa.sum())
複製代碼

結果以下

如何用圖形表示各個值?

運行指令以下

import matplotlib.pyplot as plt
fig=plt.figure()
gPapa.plot(kind='bar',grid=True) #bar 和 barh 能切換x軸,y軸
plt.show() #在須要顯示的時候調用,會一次把全部的圖都畫出來
複製代碼

結果以下

如何對兩個txt的文件根據一列作join?

另外一個文件爲xixi.txt

paxi_id	type
1	3
2	4
3	3
4	4
5	3
複製代碼

執行指令以下

xixi=pandas.read_csv('xixi.txt',sep='\t')
uXixi=xixi.drop_duplicates(['paxi_id'])
pandas.merge(uPapa,uXixi,on=['paxi_id']) #join
複製代碼

結果以下

匯出字典的圖形

period={'1':100,'2':200,'3':150}
import matplotlib.pyplot as plt
fig=plt.figure()
plt.bar(range(len(period)),period.values(),align='center')
plt.xticks(range(len(period)),list(period.values())) 
plt.show()
複製代碼

附pandas官方文檔

pandas.pydata.org/pandas-docs… 有教程~

相關文章
相關標籤/搜索