在日常做数据日报时,日报的数据指标需要根据特定的条件进行计数和求和,需要使用大量的Excel函数,比如普通计数COUNT,普通求和SUM,条件计数COUNTIF,条件求和SUMIF等。
本文借助Python对比Excel中多条件计数和求和的用法,轻松实现实现Python中的多条件计数和求和,相较而言,Python的语法更加清晰,多条件计数和求和的用法更加鲜明,下面一起来学习。
示例工具:anconda3.7、office2016
本文讲解内容:多条件计数、求和
适用范围:用Python多条件计数、求和
打开案例数据,其中包含用户ID、日期、城市等6个字段,需要对这些数据字段根据特有的条件进行计数和求和。
『普通计数/Excel』
计算用户数,使用COUNT函数,得出用户数是10个。
=COUNT(A2:A11)
计算城市列非空单元格个数,使用COUNTA函数,将非空的数值剔除,得出非空的城市为6个。
=COUNTA(C2:C11)
计算城市列空单元格个数,使用COUNTBLANK函数,只计入单元格为空的数,得出空单元格数是4个。
=COUNTBLANK(C2:C11)
『普通计数/Python』
导入第一个sheet表的数据。
importpandas aspddf1=pd.read_excel(r'D:\系统桌面(勿删)\Desktop\多条件计数与求和.xlsx',sheet_name='COUNT&COUNTA&COUNTBLANK',usecols='A:F')df1
计算用户数可以在用户ID这一列进行计数,得出用户数为10。
#计算用户数df1['用户ID'].count()
Python中的count函数默认是计入非空值,所以要求非空单元格数直接使用count函数即可,得出非空的城市为6个。
#计算城市列非空单元格个数df1['城市'].count()
要计算空的单元格数,首先用isnull函数返回布尔值,然后用sum函数求和即可,得出城市列空单元格数是4个。
#计算城市列空单元格个数df1['城市'].isnull().sum()
『条件计数/Excel』
计算不同性别的客户数,使用COUNTIF函数,添加计入的条件进行运算,得出女性客户数是5,男性客户数是5。
=COUNTIF($E$2:$E$11,"F")=COUNTIF($E$2:$E$11,"M")
计算北京女性的客户数,需要满足两个条件,一个是城市列属于北京,另一个是性别是”F”,两个条件同时满足,得出北京女性的客户数为3。
=COUNTIFS(C2:C11,"北京",E2:E11,"F")
『条件计数/Python』
导入第二个sheet表的数据。
df2=pd.read_excel(r'D:\系统桌面(勿删)\Desktop\多条件计数与求和.xlsx',sheet_name='COUNTIF&COUNTIFS',usecols='A:F')df2
要计算不同性别的客户数使用value_counts函数,既可以分组,也可以计算,得出女性客户数是5,男性客户数是5。
#计算不同性别的客户数df2['性别'].value_counts()
要计算北京女性的客户数需要筛选出城市是”北京”且性别是”F”的用户ID,进行计数即可,得出北京女性的客户数为3。
#计算北京女性的客户数df2[(df2['城市']=='北京')&(df2['性别']=='F')]['用户ID'].count()
『条件求和/Excel』
销售额求和,使用sum函数,得出销售额为37810。
=SUM(F2:F11)
北京的销售额求和,求和城市里满足是北京市的销售额,得出销售额为10828。
=SUMIF(C2:C11,"北京",F2:F11)
北京的销售额求和且满足年龄小于30岁,添加两个条件,一个是城市里是北京市,另一个是年龄小于30岁,得出销售额为3200。
=SUMIFS(F2:F11,C2:C11,"北京",D2:D11,"<30")
『条件求和/Python』
导入第三个sheet表的数据。
df3=pd.read_excel(r'D:\系统桌面(勿删)\Desktop\多条件计数与求和.xlsx',sheet_name='SUM&SUMIF&SUMIFS',usecols='A:F')df3
对销售额这一列使用sum函数求和,得出销售额为37810。
#销售额求和df3['销售额'].sum()
筛选城市这一列满足北京市的列对销售额求和,得出销售额为10828。
#北京的销售额求和df3[df3['城市']=='北京']['销售额'].sum()
筛选特定的数据,需要满足两个条件,城市列属于”北京”且年龄小于30,对销售额这一列进行求和,得出销售额为3200。
#北京的销售额求和,且满足年龄小于30岁df3[(df3['城市']=='北京')&(df3['年龄']<30)]['销售额'].sum()
以上为多条件计数和求和在Python中的用法,熟练掌握Python的用法,可以解放双手,使用代码完成Excel复杂的多条件计数、多条件求和,提高运算效率和工作效率。