再見(jiàn)excel,pandas實(shí)現(xiàn)表格最常用的10個(gè)函數(shù)
↑↑↑關(guān)注后"星標(biāo)"簡(jiǎn)說(shuō)Python
人人都可以簡(jiǎn)單入門(mén)Python、爬蟲(chóng)、數(shù)據(jù)分析 簡(jiǎn)說(shuō)Python推薦 來(lái)源:python數(shù)據(jù)分析之禪 作者:小dull鳥(niǎo)

大家好,我是老表,今天給大家分享一篇pandas實(shí)現(xiàn)excel函數(shù)功能的文章,如果學(xué)習(xí)get了,記得文末留言get!
pandas是個(gè)功能很強(qiáng)大的函數(shù),對(duì)經(jīng)常使用excel進(jìn)行數(shù)據(jù)處理的朋友很有幫助
今天教大家如何用pandas實(shí)現(xiàn)excel中最常見(jiàn)的10個(gè)函數(shù),大大提高你的工作效率
首先我們用pandas讀取數(shù)據(jù):
import pandas as pd
data=pd.read_csv('成績(jī)表.csv',encoding='gbk')
data
一、6個(gè)基礎(chǔ)函數(shù)
1.求和函數(shù)--sum()
pandas計(jì)算每名同學(xué)的總分:
data['總分']=data.sum(axis=1) #axis=1代表對(duì)行進(jìn)行求和
data

求語(yǔ)文總分:
data.sum(axis=0,numeric_only=True) #axis=0代表對(duì)列進(jìn)行求和,numeric_only=True表示只對(duì)數(shù)字求和
語(yǔ)文 689.0
數(shù)學(xué) 727.0
英語(yǔ) 712.0
總分 2128.0
dtype: float64
2.最小值函數(shù)--min()
pandas計(jì)算總分最低分:
data['總分'].min()
197.0
3.最大值函數(shù)--max()
pandas計(jì)算總分最高分:
data['總分'].max()
275.0
4.平均值函數(shù)--mean()
pandas計(jì)算英語(yǔ)成績(jī)平均分:
data['英語(yǔ)'].mean()
79.11111111111111
5.計(jì)數(shù)函數(shù)--count()
pandas統(tǒng)計(jì)共有多少同學(xué):
data['姓名'].count()
9
6.條件函數(shù)--IF()
將總分大于270分的判為優(yōu)秀,小于270分判為良好:
data['等級(jí)']=data.總分.apply(lambda x:'優(yōu)秀' if x >= 270 else '良好')
data

二、4個(gè)進(jìn)階函數(shù)
7.提取文本中的數(shù)字--MIDB()函數(shù)
在excel中實(shí)現(xiàn)如下圖:

我們用pandas也可輕松實(shí)現(xiàn):
data['考生num']=data['考生號(hào)'].str.extract('(\d{4})')
data

8.計(jì)算每名學(xué)生的年齡--DATEDIF()函數(shù)
excel用實(shí)現(xiàn)如下圖:

pandas稍微復(fù)雜一些:
import datetime as dt
now_year =dt.datetime.today().year #當(dāng)前的年份
data['出生年月']=pd.to_datetime(data['出生年月'])
data['年齡']=now_year-data.出生年月.dt.year
data

9.條件統(tǒng)計(jì)函數(shù)--COUNTIF()函數(shù)
excel實(shí)現(xiàn)如下圖:

pandas實(shí)現(xiàn)代碼如下:
data.apply(lambda x : sum(data['性別']=='女'),axis =0)
考生號(hào) 3
姓名 3
性別 3
出生年月 3
語(yǔ)文 3
數(shù)學(xué) 3
英語(yǔ) 3
總分 3
等級(jí) 3
考生num 3
年齡 3
dtype: int64
10.vlookup函數(shù)
花名冊(cè)表格如下:
data1 = pd.read_csv('花名冊(cè).csv',encoding='gbk')
data1
| 考生號(hào) | 姓名 | 性別 | 出生年月 | |
|---|---|---|---|---|
| 0 | sccu1001 | 馬偉良 | 男 | 2001/12/1 |
| 2 | sccu1003 | 牛京田 | 男 | 2001/5/2 |
| 3 | sccu1004 | 王建國(guó) | 男 | 2002/4/14 |
| 4 | sccu1005 | 寧丁勝 | 男 | 1999/2/24 |
| 5 | sccu1006 | 劉華 | 男 | 2000/1/28 |
| 6 | sccu1007 | 孫苛示 | 女 | 2001/7/16 |
| 7 | sccu1008 | 安也衛(wèi) | 女 | 2000/8/30 |
| 8 | sccu1009 | 成功 | 男 | 2000/4/9 |
成績(jī)單表格如下:
data2 = pd.read_csv('成績(jī)單.csv',encoding='gbk')
data2
| 考生號(hào) | 語(yǔ)文 | 數(shù)學(xué) | 英語(yǔ) | |
|---|---|---|---|---|
| 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[['考生號(hào)','語(yǔ)文','數(shù)學(xué)','英語(yǔ)']],how = 'left',on = '考生號(hào)')
data3

公眾號(hào)后臺(tái)回復(fù)「excel10」可自動(dòng)獲取本文代碼和數(shù)據(jù)。
最后,為了方便大家學(xué)習(xí),老表給大家準(zhǔn)備一份pandas玩轉(zhuǎn)Excel的自動(dòng)化辦公視頻教程。這套視頻即生動(dòng)有趣,又通俗易懂,而且是高清視頻,非常適合pandas學(xué)習(xí)者,總共30個(gè)課時(shí),而且附帶源碼和數(shù)據(jù)素材,已經(jīng)給大家打包準(zhǔn)備好,獲取方式如下:
掃碼查看我朋友圈
獲取最新學(xué)習(xí)資源
學(xué)習(xí)更多: 整理了我開(kāi)始分享學(xué)習(xí)筆記到現(xiàn)在超過(guò)250篇優(yōu)質(zhì)文章,涵蓋數(shù)據(jù)分析、爬蟲(chóng)、機(jī)器學(xué)習(xí)等方面,別再說(shuō)不知道該從哪開(kāi)始,實(shí)戰(zhàn)哪里找了
“點(diǎn)贊”傳統(tǒng)美德不能丟 
