首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >pandas_VS_Excel条件统计人数与求和

pandas_VS_Excel条件统计人数与求和

作者头像
哆哆Excel
发布2022-10-25 15:22:03
发布2022-10-25 15:22:03
1.3K0
举报
文章被收录于专栏:哆哆Excel哆哆Excel

yhd-pandas分类统计个数与和

◆【解决问题】

在一次工作中遇到这样一个问题:

1.按条件“全年”统计人数与求和,

2.按“非全年”统计人数与求和

3.最后再统计合计人数与合计总和

如下明细表

要统计如下

四个方框表示四个要统计的问题

◆【Excel函数解决问题】

这里只列出所用到的关键函数

C3=SUMPRODUCT((明细表!$B$2:$B$31=统计!B3)*(明细表!$E$2:$E$31=12)*1)

D3=SUMPRODUCT((明细表!$B$2:$B$31=统计!B3)*(明细表!$E$2:$E$31=12)*(明细表!$F$2:$F$31))

E3=SUMPRODUCT((明细表!$B$2:$B$31=统计!B3)*(明细表!$E$2:$E$31<12)*1)

F3=SUMPRODUCT((明细表!$B$2:$B$31=统计!B3)*(明细表!$E$2:$E$31<12)*(明细表!$F$2:$F$31))

G3= =C3+E3下拉

H3= =D3+F3下拉

C9=SUM(C3:C8)右拉

◆【pandas解决问题】

=====代码如下=====

import pandas as pd

file="D://yhd_python_home/yhd-pandas分类统计个数与和/pandas分类统计个数与和2.xlsx"

df= pd.read_excel(file)

df12=df[df['月数']==12]

df12g=df12.groupby('单位').agg({'月数':['count'],'金额':['sum']})

dfxiao12=df[df['月数']<12]

dfxiao12g=dfxiao12.groupby('单位').agg({'月数':['count'],'金额':['sum']})

df_du=df[['序号','单位']]

df_du=df_du.drop_duplicates(['单位'])

df_final=pd.merge(df_du,df12g,on='单位',how='left')

df_final=pd.merge(df_final,dfxiao12g,on='单位',how='left')

df_final=df_final.fillna(value=0)

new_col=['序号','单位','全年人数','全年金额小计','非全年人数','非全年金额小计']

df_final.columns = new_col

df_final['合计人数']=df_final['全年人数']+df_final['非全年人数']

df_final['合计金额']=df_final['全年金额小计']+df_final['非全年金额小计']

df_final.loc['Row_sum'] = df_final.apply(lambda x: x.sum(),axis=0)

file_out="D://yhd_python_home/yhd-pandas分类统计个数与和/pandas分类统计个数与和2_out.xlsx"

df_final.to_excel(file_out)

=====代码end=====

步骤1:读入数据

步骤2:读出条件“全年”(月数==12)的数据,并分组groupby再用agg不再的数据列用不同的统计方式

步骤3:读出条件“非全年”(月数<12)的数据,并分组groupby再用agg不再的数据列用不同的统计方式

步骤4:读出列“单位”并去重

步骤5:把,“单位”数据,“全年”数据,“非全年”数据进行合并拼接,再计算两合计,再输出为excel文件

 ===完成===

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 哆哆Excel 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档