有时候到手的数据基本是固定分隔符分隔的几个文件,须要重里面作一些数据统计,好比去重,计算某一列的和,两个文件的并集等等,若是可以像sql同样操做txt文件就行了,这就是pandas带来的好处html
示例文件数据 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() #在须要显示的时候调用,会一次把全部的图都画出来
复制代码
结果以下
另外一个文件为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()
复制代码