前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pandas操作txt文件的方便之处

pandas操作txt文件的方便之处

作者头像
爬蜥
发布2019-07-09 11:38:55
8920
发布2019-07-09 11:38:55
举报

有时候到手的数据基本是固定分隔符分隔的几个文件,需要重里面做一些数据统计,比如去重,计算某一列的和,两个文件的并集等等,如果能够像sql一样操作txt文件就好了,这就是pandas带来的好处

如何加载txt文件?

示例文件数据 papa.txt

代码语言:javascript
复制
 paxi_id grade
  1       50
  2       50
  3       100
  4       200
  3       100
  5       100
 
复制代码

安装好jupyter ,在文件目录中运行jupyter notebook,在打开的浏览器界面上,选择python运行

在打开的界面上,运行加载的命令

代码语言:javascript
复制
import pandas #引入pandas
papa=pandas.read_csv('papa.txt',sep='\t') #加载papa.txt,指定它的分隔符是 \t
papa.head() #显示数据的前几行
复制代码

可以看到加载的结果直观的用表格展示

如何知道刚加载的数据有几行?有几列?

运行指令如下

代码语言:javascript
复制
rowNum=papa.shape[0] #不包括表头
colNum=papa.columns.size
复制代码

结果为

如何根据一列对整个数据进行去重?

运行指令如下

代码语言:javascript
复制
uPapa=papa.drop_duplicates(['paxi_id'])
复制代码

结果如下

如何获取一列的去重的值?去重后有多少个?

运行指令如下

代码语言:javascript
复制
uPaxiId=papa['paxi_id'].unique()
print("uPaxiId:",uPaxiId)
totalUPaxiIdNum=uPaxiId.size
print("num:",totalUPaxiIdNum)
复制代码

运行结果如下

如何计算一列的和?

运行指令如下

代码语言:javascript
复制
papa['grade'].sum()
复制代码

结果如下

如何过滤特定的值的行?

运行指令如下

代码语言:javascript
复制
papa[ ( papa['grade'] == 50 ) | ( papa['grade'] == 100 ) ]
复制代码

结果如下

如何计算某一列各个取值的个数?

运行指令如下

代码语言:javascript
复制
gPapa=papa.groupby('grade').size()
复制代码

结果如下

如何计算其中两个或者所有的和?

运行指令如下

代码语言:javascript
复制
v=gPapa[50]+gPapa[100]
print("两个的和:",v)
print("总和:",gPapa.sum())
复制代码

结果如下

如何用图形表示各个值?

运行指令如下

代码语言:javascript
复制
import matplotlib.pyplot as plt
fig=plt.figure()
gPapa.plot(kind='bar',grid=True) #bar 和 barh 能切换x轴,y轴
plt.show() #在需要显示的时候调用,会一次把所有的图都画出来
复制代码

结果如下

如何对两个txt的文件根据一列做join?

另一个文件为xixi.txt

代码语言:javascript
复制
paxi_id	type
1	3
2	4
3	3
4	4
5	3
复制代码

执行指令如下

代码语言:javascript
复制
xixi=pandas.read_csv('xixi.txt',sep='\t')
uXixi=xixi.drop_duplicates(['paxi_id'])
pandas.merge(uPapa,uXixi,on=['paxi_id']) #join
复制代码

结果如下

汇出字典的图形

代码语言:javascript
复制
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… 有教程~

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年06月21日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何加载txt文件?
  • 如何知道刚加载的数据有几行?有几列?
  • 如何根据一列对整个数据进行去重?
    • 如何获取一列的去重的值?去重后有多少个?
    • 如何计算一列的和?
    • 如何过滤特定的值的行?
    • 如何计算某一列各个取值的个数?
      • 如何计算其中两个或者所有的和?
        • 如何用图形表示各个值?
        • 如何对两个txt的文件根据一列做join?
        • 汇出字典的图形
        • 附pandas官方文档
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档