agg()
函数的常见用法是在分组数据后对特定列应用一个或多个聚合函数,生成汇总统计信息。例如,你可以对数据按照某个列进行分组,然后计算每个组的平均值、总和等。
file:[差额对比分析.py]
import pandas as pd
zhaocai = "C:\\Users\\root\\Downloads\\医疗机构入库明细.xlsx"
zhaocai_data = pd.read_excel(zhaocai)
grouped_zhaocai_data = zhaocai_data \
.loc[zhaocai_data['医院名称'] == '人民医院'] \
.groupby('医保编码')
his = "C:\\Users\\root\\Downloads\\人民医院HIS系统数据.xlsx"
his_data = pd.read_excel(his)
grouped_his_data = his_data \
.groupby('医保编码')
aggregations = {
'产品名称': 'first',
'规格': 'first',
'型号': 'first',
'注册证编号': 'first',
'生产企业': 'first',
'配送企业名称': 'first',
'所属项目': 'first',
'医保编码': 'first',
'实际入库数量': 'sum',
'实际入库金额': 'sum',
}
sum_zhaocai_data = grouped_zhaocai_data.agg(aggregations).rename(
columns={'实际入库数量': '招采平台实际入库数量', '实际入库金额': '招采平台实际入库金额', '医保编码': '产品编码'}
)
sum_his_data = (grouped_his_data[['SUM(A.数次)', '金额']]
.sum()
.rename(columns={'SUM(A.数次)': '医院HIS采购总量', '金额': '医院HIS收货总金额'}))
merged_data = pd.merge(sum_zhaocai_data, sum_his_data, on='医保编码')
merged_data['医院HIS减去招采平台差额'] = sum_his_data['医院HIS收货总金额'] - sum_zhaocai_data[
'招采平台实际入库金额']
output_path = "C:\\Users\\root\\Downloads\\差额对比表.xlsx"
merged_data.to_excel(output_path, index=False)
筛选 医疗机构入库明细
表中的人民医院,按照医保编号进行分组。现在需要对该分组进行求和,有些列不需要求和,重复的就取第一个作为列值。
sum_his_data 中 “SUM(A.数次)” 和 “金额” 两列数据全部求和。
两个 DataFrame 数据合并,将数据输出到新的表格中。
标签:his,Python,sum,agg,zhaocai,data,pandas,入库,first From: https://www.cnblogs.com/Himmelbleu/p/17864532.html