再见excel,pandas实现表格最常用的10个函数
↑↑↑关注后"星标"简说Python
人人都可以简单入门Python、爬虫、数据分析 简说Python推荐 来源:python数据分析之禅 作者:小dull鸟

大家好,我是老表,今天给大家分享一篇pandas实现excel函数功能的文章,如果学习get了,记得文末留言get!
pandas是个功能很强大的函数,对经常使用excel进行数据处理的朋友很有帮助
今天教大家如何用pandas实现excel中最常见的10个函数,大大提高你的工作效率
首先我们用pandas读取数据:
import pandas as pd
data=pd.read_csv('成绩表.csv',encoding='gbk')
data
一、6个基础函数
1.求和函数--sum()
pandas计算每名同学的总分:
data['总分']=data.sum(axis=1) #axis=1代表对行进行求和
data

求语文总分:
data.sum(axis=0,numeric_only=True) #axis=0代表对列进行求和,numeric_only=True表示只对数字求和
语文     689.0
数学     727.0
英语     712.0
总分    2128.0
dtype: float64
2.最小值函数--min()
pandas计算总分最低分:
data['总分'].min()
197.0
3.最大值函数--max()
pandas计算总分最高分:
data['总分'].max()
275.0
4.平均值函数--mean()
pandas计算英语成绩平均分:
data['英语'].mean()
79.11111111111111
5.计数函数--count()
pandas统计共有多少同学:
data['姓名'].count()
9
6.条件函数--IF()
将总分大于270分的判为优秀,小于270分判为良好:
data['等级']=data.总分.apply(lambda x:'优秀' if x >= 270 else '良好')
data

二、4个进阶函数
7.提取文本中的数字--MIDB()函数
在excel中实现如下图:

我们用pandas也可轻松实现:
data['考生num']=data['考生号'].str.extract('(\d{4})')
data

8.计算每名学生的年龄--DATEDIF()函数
excel用实现如下图:

pandas稍微复杂一些:
import datetime as dt
now_year =dt.datetime.today().year #当前的年份
data['出生年月']=pd.to_datetime(data['出生年月'])
data['年龄']=now_year-data.出生年月.dt.year
data

9.条件统计函数--COUNTIF()函数
excel实现如下图:

pandas实现代码如下:
data.apply(lambda x : sum(data['性别']=='女'),axis =0)
考生号      3
姓名       3
性别       3
出生年月     3
语文       3
数学       3
英语       3
总分       3
等级       3
考生num    3
年龄       3
dtype: int64
10.vlookup函数
花名册表格如下:
data1 = pd.read_csv('花名册.csv',encoding='gbk')
data1
| 考生号 | 姓名 | 性别 | 出生年月 | |
|---|---|---|---|---|
| 0 | sccu1001 | 马伟良 | 男 | 2001/12/1 | 
| 2 | sccu1003 | 牛京田 | 男 | 2001/5/2 | 
| 3 | sccu1004 | 王建国 | 男 | 2002/4/14 | 
| 4 | sccu1005 | 宁丁胜 | 男 | 1999/2/24 | 
| 5 | sccu1006 | 刘华 | 男 | 2000/1/28 | 
| 6 | sccu1007 | 孙苛示 | 女 | 2001/7/16 | 
| 7 | sccu1008 | 安也卫 | 女 | 2000/8/30 | 
| 8 | sccu1009 | 成功 | 男 | 2000/4/9 | 
成绩单表格如下:
data2 = pd.read_csv('成绩单.csv',encoding='gbk')
data2
| 考生号 | 语文 | 数学 | 英语 | |
|---|---|---|---|---|
| 0 | sccu1001 | 67.0 | 78.0 | 86 | 
| 1 | sccu1002 | 56.0 | 73.0 | 68 | 
| 2 | sccu1003 | 70.5 | 78.0 | 53 | 
| 3 | sccu1004 | 67.0 | 79.5 | 74 | 
| 4 | sccu1005 | 88.0 | 95.0 | 89 | 
| 5 | sccu1006 | 68.5 | 70.0 | 73 | 
| 6 | sccu1007 | 89.0 | 97.0 | 89 | 
| 7 | sccu1008 | 90.0 | 67.5 | 92 | 
| 8 | sccu1009 | 93.0 | 89.0 | 88 | 
合并后的表格:
data3 = pd.merge(data1,data2[['考生号','语文','数学','英语']],how = 'left',on = '考生号')
data3

公众号后台回复「excel10」可自动获取本文代码和数据。
最后,为了方便大家学习,老表给大家准备一份pandas玩转Excel的自动化办公视频教程。这套视频即生动有趣,又通俗易懂,而且是高清视频,非常适合pandas学习者,总共30个课时,而且附带源码和数据素材,已经给大家打包准备好,获取方式如下:
扫码查看我朋友圈
获取最新学习资源
学习更多: 整理了我开始分享学习笔记到现在超过250篇优质文章,涵盖数据分析、爬虫、机器学习等方面,别再说不知道该从哪开始,实战哪里找了 
“点赞”传统美德不能丢 
评论
