我正在尝试编写一个函数来汇总并在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,然后在原始表上合并相关推荐

  1. Python 数据分析三剑客之 Pandas(六):GroupBy 数据分裂、应用与合并

    CSDN 课程推荐:<迈向数据科学家:带你玩转Python数据分析>,讲师齐伟,苏州研途教育科技有限公司CTO,苏州大学应用统计专业硕士生指导委员会委员:已出版<跟老齐学Python ...

  2. Pandas简明教程:九、表的合并、连接、拼接(数据聚合基础)

    真实场景中常会遇到多种信息放在不同的表里的情况,此时我们就需要将这些表格的信息整合到一起.这种操作可以极大地减轻我们手动粘数据的工作,从而达到事半功倍的效果. 由于本篇要举的例子较多,因此直接采用官网 ...

  3. pandas python groupby_pandas之分组groupby()的使用整理与总结

    前言 在使用pandas的时候,有些场景需要对数据内部进行分组处理,如一组全校学生成绩的数据,我们想通过班级进行分组,或者再对班级分组后的性别进行分组来进行分析,这时通过pandas下的groupby ...

  4. Pandas转pivot, groupby等结果为dataFrame--彻底解决多表头问题

    Pandas转pivot, groupby等结果为dataFrame 问题背景: 在用Pandas进行数据分析和处理的时候,常会用到如goupby(),pivot()等方法,这些方法极大简化了我们的操 ...

  5. 学习Python处理Excel 难度1级别 多表合并、数据透视表、拆分合并单元格并获得一维表

    #本代码要点:多表合并.数据透视表.拆分合并单元格并获得一维表 #主题:各门店合并,计算各店当月回店做服务2次+的客人数量 #EXCEL工作表:存在合并单元格 #备注: import pandas a ...

  6. pandas常用函数说明及速查表

    pandas常用函数说明及速查表 如果你用python做开发,那么几乎肯定会使用pandas库. Pandas 是 Python 语言的一个扩展程序库,用于数据分析. Pandas 是一个开放源码.B ...

  7. pandas中pd.groupby()的用法

    在pandas中的groupby和在sql语句中的groupby有异曲同工之妙,不过也难怪,毕竟关系数据库中的存放数据的结构也是一张大表罢了,与dataframe的形式相似. import numpy ...

  8. Python提取多张excel表上的数据,合并汇总到一张新表

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于财会学习联盟,作者:我是刀哥啊 私信回复"资料" ...

  9. python读取多个excel表_python 实现读取一个excel多个sheet表并合并的方法

    python 实现读取一个excel多个sheet表并合并的方法 如下所示: import xlrd import pandas as pd from pandas import DataFrame ...

最新文章

  1. 力扣(LeetCode)933
  2. js插值计算_Python IDW插值计算及可视化绘制
  3. 67 亿美金搞个图,创建知识图谱的成本有多高你知道吗?
  4. boost::intrusive::value_traits用法的测试程序
  5. 2.5 Go 算术运算与变量使用技巧
  6. Linux下解决MySQL无法远程连接问题(转)
  7. WDI面板数据(1990-2020)
  8. HttpClient用法--这一篇全了解(内含例子)
  9. windows如何去除桌面图标箭头
  10. 中国移动国际mCloud体验再次升级,助力企业远程协同数字化转型
  11. P1397 [NOI2013] 矩阵游戏(矩阵乘法欧拉定理)
  12. matplotlib保存图片去除白边
  13. Vue.js 框架源码与进阶 - 搭建自己的SSR
  14. MFC通讯录入门必看
  15. spring用注解无法灵活注入带参构造函数解决办法
  16. [emWin]利用内存设备加速GIF图片显示——2021.03
  17. Linux虚拟机命令行联网
  18. oracle数据库添加序列
  19. OpenShift 4 之让Route只运行在集群中Infra节点
  20. java hibernate 是什么意思_Java开源项目Hibernate意义是什么?

热门文章

  1. java 高并发第三阶段实战_Java 高并发第三阶段实战---Java并发包深入解析与使用详解...
  2. 图片插值数据_结合PS用这招来增强ArcGIS插值图出图效果
  3. oracle个人版初始密码,不知道普通用户密码,只知道sys用户密码,不修改普通用户密码,即可登录...
  4. jq简单封装replaceAll
  5. AngularJS 1.3 支持使用 $digest() 循环实现延迟
  6. ceph常用命令-pool相关命令
  7. javascript的装饰者模式(七)
  8. Linux下OpenSSL的安装与使用
  9. RED5 安装及问题
  10. Python 爬虫小程序(正则表达式的应用)