在日常做數(shù)據(jù)日報(bào)時(shí),日報(bào)的數(shù)據(jù)指標(biāo)需要根據(jù)特定的條件進(jìn)行計(jì)數(shù)和求和,需要使用大量的Excel函數(shù),比如普通計(jì)數(shù)COUNT,普通求和SUM,條件計(jì)數(shù)COUNTIF,條件求和SUMIF等。
本文借助Python對比Excel中多條件計(jì)數(shù)和求和的用法,輕松實(shí)現(xiàn)實(shí)現(xiàn)Python中的多條件計(jì)數(shù)和求和,相較而言,Python的語法更加清晰,多條件計(jì)數(shù)和求和的用法更加鮮明,下面一起來學(xué)習(xí)。
示例工具:anconda3.7、office2016
本文講解內(nèi)容:多條件計(jì)數(shù)、求和
適用范圍:用Python多條件計(jì)數(shù)、求和
打開案例數(shù)據(jù),其中包含用戶ID、日期、城市等6個(gè)字段,需要對這些數(shù)據(jù)字段根據(jù)特有的條件進(jìn)行計(jì)數(shù)和求和。
『普通計(jì)數(shù)/Excel』
計(jì)算用戶數(shù),使用COUNT函數(shù),得出用戶數(shù)是10個(gè)。
=COUNT(A2:A11)
計(jì)算城市列非空單元格個(gè)數(shù),使用COUNTA函數(shù),將非空的數(shù)值剔除,得出非空的城市為6個(gè)。
=COUNTA(C2:C11)
計(jì)算城市列空單元格個(gè)數(shù),使用COUNTBLANK函數(shù),只計(jì)入單元格為空的數(shù),得出空單元格數(shù)是4個(gè)。
=COUNTBLANK(C2:C11)
『普通計(jì)數(shù)/Python』
導(dǎo)入第一個(gè)sheet表的數(shù)據(jù)。
import pandas as pddf1=pd.read_excel(r'D:\系統(tǒng)桌面(勿刪)\Desktop\多條件計(jì)數(shù)與求和.xlsx',sheet_name='COUNT&COUNTA&COUNTBLANK',usecols='A:F')df1
計(jì)算用戶數(shù)可以在用戶ID這一列進(jìn)行計(jì)數(shù),得出用戶數(shù)為10。
#計(jì)算用戶數(shù)df1['用戶ID'].count()
Python中的count函數(shù)默認(rèn)是計(jì)入非空值,所以要求非空單元格數(shù)直接使用count函數(shù)即可,得出非空的城市為6個(gè)。
#計(jì)算城市列非空單元格個(gè)數(shù)df1['城市'].count()
要計(jì)算空的單元格數(shù),首先用isnull函數(shù)返回布爾值,然后用sum函數(shù)求和即可,得出城市列空單元格數(shù)是4個(gè)。
#計(jì)算城市列空單元格個(gè)數(shù)df1['城市'].isnull().sum()
『條件計(jì)數(shù)/Excel』
計(jì)算不同性別的客戶數(shù),使用COUNTIF函數(shù),添加計(jì)入的條件進(jìn)行運(yùn)算,得出女性客戶數(shù)是5,男性客戶數(shù)是5。
=COUNTIF($E$2:$E$11,'F')=COUNTIF($E$2:$E$11,'M')
計(jì)算北京女性的客戶數(shù),需要滿足兩個(gè)條件,一個(gè)是城市列屬于北京,另一個(gè)是性別是'F',兩個(gè)條件同時(shí)滿足,得出北京女性的客戶數(shù)為3。
=COUNTIFS(C2:C11,'北京',E2:E11,'F')
『條件計(jì)數(shù)/Python』
導(dǎo)入第二個(gè)sheet表的數(shù)據(jù)。
df2=pd.read_excel(r'D:\系統(tǒng)桌面(勿刪)\Desktop\多條件計(jì)數(shù)與求和.xlsx',sheet_name='COUNTIF&COUNTIFS',usecols='A:F')df2
要計(jì)算不同性別的客戶數(shù)使用value_counts函數(shù),既可以分組,也可以計(jì)算,得出女性客戶數(shù)是5,男性客戶數(shù)是5。
#計(jì)算不同性別的客戶數(shù)df2['性別'].value_counts()
要計(jì)算北京女性的客戶數(shù)需要篩選出城市是'北京'且性別是'F'的用戶ID,進(jìn)行計(jì)數(shù)即可,得出北京女性的客戶數(shù)為3。
#計(jì)算北京女性的客戶數(shù)df2[(df2['城市']=='北京')&(df2['性別']=='F')]['用戶ID'].count()
『條件求和/Excel』
銷售額求和,使用sum函數(shù),得出銷售額為37810。
=SUM(F2:F11)
北京的銷售額求和,求和城市里滿足是北京市的銷售額,得出銷售額為10828。
=SUMIF(C2:C11,'北京',F2:F11)
北京的銷售額求和且滿足年齡小于30歲,添加兩個(gè)條件,一個(gè)是城市里是北京市,另一個(gè)是年齡小于30歲,得出銷售額為3200。
=SUMIFS(F2:F11,C2:C11,'北京',D2:D11,'<30')
『條件求和/Python』
導(dǎo)入第三個(gè)sheet表的數(shù)據(jù)。
df3=pd.read_excel(r'D:\系統(tǒng)桌面(勿刪)\Desktop\多條件計(jì)數(shù)與求和.xlsx',sheet_name='SUM&SUMIF&SUMIFS',usecols='A:F')df3
對銷售額這一列使用sum函數(shù)求和,得出銷售額為37810。
#銷售額求和df3['銷售額'].sum()
篩選城市這一列滿足北京市的列對銷售額求和,得出銷售額為10828。
#北京的銷售額求和df3[df3['城市']=='北京']['銷售額'].sum()
篩選特定的數(shù)據(jù),需要滿足兩個(gè)條件,城市列屬于'北京'且年齡小于30,對銷售額這一列進(jìn)行求和,得出銷售額為3200。
#北京的銷售額求和,且滿足年齡小于30歲df3[(df3['城市']=='北京')&(df3['年齡']<30)]['銷售額'].sum()
以上為多條件計(jì)數(shù)和求和在Python中的用法,熟練掌握Python的用法,可以解放雙手,使用代碼完成Excel復(fù)雜的多條件計(jì)數(shù)、多條件求和,提高運(yùn)算效率和工作效率。
三年互聯(lián)網(wǎng)數(shù)據(jù)分析經(jīng)驗(yàn),擅長Excel、SQL、Python、PowerBI數(shù)據(jù)處理工具,數(shù)據(jù)可視化、商業(yè)數(shù)據(jù)分析技能,統(tǒng)計(jì)學(xué)、機(jī)器學(xué)習(xí)知識,持續(xù)創(chuàng)作數(shù)據(jù)分析內(nèi)容,點(diǎn)贊關(guān)注,不迷路。