首页 > 编程语言 >Python - pandas agg 函数

Python - pandas agg 函数

时间:2023-11-29 12:25:05浏览次数:47  
标签:his Python sum agg zhaocai data pandas 入库 first

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

相关文章

  • Python美丽图案生成方法
    使用samila库可以生成美丽的图案,例如:#pipinstallsamila==1.1orpip3installsamila==1.1importmatplotlib.pyplotaspltfromsamilaimportGenerativeImage#g=GenerativeImage()#g.generate()#g.plot()#plt.show()importrandomimportmathdeff1(x,......
  • python之计算获取前几天日期
    #-*-coding:utf-8-*-fromdatetimeimportdatetime,timedeltatoday=datetime.today()print("今天的日期是:",today,today.strftime("%Y-%m-%d"))#获取前一天的日期yesterday=today-timedelta(days=1)#格式化日期为所需的字符串格式date_str=yesterday.strfti......
  • Python常用命令
    1、安装包   pipinstallxlrd2、使用清华大学镜像安装Python包    pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplematplotlib==22.0.43、查看已经安装的Python包  piplist4、将Python代码打包成exe  Pyinstaller-F-wE:\工作内容\常用Pytho......
  • 网站SEO进阶指南:如何用Python爬虫进行网页结构优化
    前段时间一个做网络优化的朋友找我,问我能不能通过爬虫的手段对他们自己的网络进行优化。这个看着着实比较新颖,对于从事爬虫行业的程序员来说,很有挑战性,值得尝试尝试。说白了使用爬虫进行网站优化需要对网站的结构、内容、链接等进行全面的分析和优化,以提高网站在搜索引擎中的排名和......
  • Python自动化办公——3个Excel表格中每个门店物品不同,想要汇总在一起(方法五)
    大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Python自动化办公处理的问题,一起来看看吧。上一篇文章中,我们已经看到了四种解决办法了,这一篇文章我们一起来看看另外一种方法。二、实现过程这里【论草莓如何成为冻干莓】给了unstack()操作的方法,代码如下......
  • pandas如何将下图这个数据格式,改为%Y-%m-%d这种格式的?
    大家好,我是皮皮。一、前言前几天在Python白银交流群【小王子】问了一个Python日期处理的问题,一起来看看吧。原始数据库中的数据如下所示:二、实现过程这里【袁学东】给了一个方法,代码如下所示:df['日期']=pd.to_datetime(df['日期']).datetime.strftime(‘%Y%m-%d’)顺利地解决了问......
  • python ElementTree操作xml节点
    pythonElementTree操作xml节点,包括增删改查xml原文<Voucher><Id>967a198783d14835860574c697478156</Id><Remark>main摘要443344245567583384475</Remark><Delete>需要删除的节点1</Delete><DetailList><Detail......
  • Python高阶函数
     map#map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。reduce#reduce把一个函数作用在一个序列[x1,x2,x3,...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算,其效......
  • 义无反顾马督工,Bert-vits2V210复刻马督工实践(Python3.10)
    Bert-vits2更新了版本V210,修正了日/英的bert对齐问题,效果进一步优化;对底模使用的数据进行优化和加量,减少finetune失败以及电音的可能性;日语bert更换了模型,完善了多语言推理。更多情报请参考Bert-vits2官网:https://github.com/fishaudio/Bert-VITS2/releases/tag/2.1最近的事......
  • Java开发者的Python快速进修指南:实战之跳表pro版本
    之前我们讲解了简易版的跳表,我希望你能亲自动手实现一个更完善的跳表,同时也可以尝试实现其他数据结构,例如动态数组或哈希表等。通过实践,我们能够发现自己在哪些方面还有所欠缺。这些方法只有在熟练掌握之后才会真正理解,就像我在编写代码的过程中,难免会忘记一些方法或如何声明属性......