pandas合并groupby_Pandas-GroupBy,然后在原始表上合并
我正在尝试编写一个函数来汇总并在Pandas中的数据框上执行各种统计数据计算,然后将其合并到原始数据框,但是,我遇到了问题。这与SQL中的代码等效:
SELECT EID,
PCODE,
SUM(PVALUE) AS PVALUE,
SUM(SQRT(SC*EXP(SC-1))) AS SC,
SUM(SI) AS SI,
SUM(EE) AS EE
INTO foo_bar_grp
FROM foo_bar
GROUP BY EID, PCODE
然后加入原始表:
SELECT *
FROM foo_bar_grp INNER JOIN
foo_bar ON foo_bar.EID = foo_bar_grp.EID
AND foo_bar.PCODE = foo_bar_grp.PCODE
步骤如下:将数据加载到 :>>
pol_dict = {'PID':[1,1,2,2],
'EID':[123,123,123,123],
'PCODE':['GU','GR','GU','GR'],
'PVALUE':[100,50,150,300],
'SI':[400,40,140,140],
'SC':[230,23,213,213],
'EE':[10000,10000,2000,30000],
}
pol_df = DataFrame(pol_dict)
pol_df
出:>>
EID EE PCODE PID PVALUE SC SI
0 123 10000 GU 1 100 230 400
1 123 10000 GR 1 50 23 40
2 123 2000 GU 2 150 213 140
3 123 30000 GR 2 300 213 140
步骤2:对数据进行计算和分组:
我的熊猫代码如下:
#create aggregation dataframe
poagg_df = pol_df
del poagg_df['PID']
po_grouped_df = poagg_df.groupby(['EID','PCODE'])
#generate acc level aggregate
acc_df = po_grouped_df.agg({
'PVALUE' : np.sum,
'SI' : lambda x: np.sqrt(np.sum(x * np.exp(x-1))),
'SC' : np.sum,
'EE' : np.sum
})
在我想加入原始表之前,此方法可以正常工作:
IN:>>
po_account_df = pd.merge(acc_df, po_df, on=['EID','PCODE'], how='inner',suffixes=('_Acc','_Po'))
OUT:>> KeyError:您没有名为EID的项目
由于某种原因,分组的数据框无法联接回原始表。我已经研究了尝试将groupby列转换为实际列的方法,但这似乎不起作用。
请注意,最终目标是能够找到每一列(PVALUE,SI,SC,EE)IE的百分比:
pol_acc_df['PVALUE_PCT'] = np.round(pol_acc_df.PVALUE_Po/pol_acc_df.PVALUE_Acc,4)
谢谢!
pandas合并groupby_Pandas-GroupBy,然后在原始表上合并相关推荐
- Python 数据分析三剑客之 Pandas(六):GroupBy 数据分裂、应用与合并
CSDN 课程推荐:<迈向数据科学家:带你玩转Python数据分析>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python ...
- Pandas简明教程:九、表的合并、连接、拼接(数据聚合基础)
真实场景中常会遇到多种信息放在不同的表里的情况,此时我们就需要将这些表格的信息整合到一起.这种操作可以极大地减轻我们手动粘数据的工作,从而达到事半功倍的效果. 由于本篇要举的例子较多,因此直接采用官网 ...
- pandas python groupby_pandas之分组groupby()的使用整理与总结
前言 在使用pandas的时候,有些场景需要对数据内部进行分组处理,如一组全校学生成绩的数据,我们想通过班级进行分组,或者再对班级分组后的性别进行分组来进行分析,这时通过pandas下的groupby ...
- Pandas转pivot, groupby等结果为dataFrame--彻底解决多表头问题
Pandas转pivot, groupby等结果为dataFrame 问题背景: 在用Pandas进行数据分析和处理的时候,常会用到如goupby(),pivot()等方法,这些方法极大简化了我们的操 ...
- 学习Python处理Excel 难度1级别 多表合并、数据透视表、拆分合并单元格并获得一维表
#本代码要点:多表合并.数据透视表.拆分合并单元格并获得一维表 #主题:各门店合并,计算各店当月回店做服务2次+的客人数量 #EXCEL工作表:存在合并单元格 #备注: import pandas a ...
- pandas常用函数说明及速查表
pandas常用函数说明及速查表 如果你用python做开发,那么几乎肯定会使用pandas库. Pandas 是 Python 语言的一个扩展程序库,用于数据分析. Pandas 是一个开放源码.B ...
- pandas中pd.groupby()的用法
在pandas中的groupby和在sql语句中的groupby有异曲同工之妙,不过也难怪,毕竟关系数据库中的存放数据的结构也是一张大表罢了,与dataframe的形式相似. import numpy ...
- Python提取多张excel表上的数据,合并汇总到一张新表
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于财会学习联盟,作者:我是刀哥啊 私信回复"资料" ...
- python读取多个excel表_python 实现读取一个excel多个sheet表并合并的方法
python 实现读取一个excel多个sheet表并合并的方法 如下所示: import xlrd import pandas as pd from pandas import DataFrame ...
最新文章
- 力扣(LeetCode)933
- js插值计算_Python IDW插值计算及可视化绘制
- 67 亿美金搞个图,创建知识图谱的成本有多高你知道吗?
- boost::intrusive::value_traits用法的测试程序
- 2.5 Go 算术运算与变量使用技巧
- Linux下解决MySQL无法远程连接问题(转)
- WDI面板数据(1990-2020)
- HttpClient用法--这一篇全了解(内含例子)
- windows如何去除桌面图标箭头
- 中国移动国际mCloud体验再次升级,助力企业远程协同数字化转型
- P1397 [NOI2013] 矩阵游戏(矩阵乘法欧拉定理)
- matplotlib保存图片去除白边
- Vue.js 框架源码与进阶 - 搭建自己的SSR
- MFC通讯录入门必看
- spring用注解无法灵活注入带参构造函数解决办法
- [emWin]利用内存设备加速GIF图片显示——2021.03
- Linux虚拟机命令行联网
- oracle数据库添加序列
- OpenShift 4 之让Route只运行在集群中Infra节点
- java hibernate 是什么意思_Java开源项目Hibernate意义是什么?
热门文章
- java 高并发第三阶段实战_Java 高并发第三阶段实战---Java并发包深入解析与使用详解...
- 图片插值数据_结合PS用这招来增强ArcGIS插值图出图效果
- oracle个人版初始密码,不知道普通用户密码,只知道sys用户密码,不修改普通用户密码,即可登录...
- jq简单封装replaceAll
- AngularJS 1.3 支持使用 $digest() 循环实现延迟
- ceph常用命令-pool相关命令
- javascript的装饰者模式(七)
- Linux下OpenSSL的安装与使用
- RED5 安装及问题
- Python 爬虫小程序(正则表达式的应用)