有可能,但真的很复杂:

np.random.seed(234)

df= pd.DataFrame(np.random.randint(5,8,(1000,4)), columns=['a','b','c','d'])

wm = lambda x: (x * df.loc[x.index, "c"]).sum() / x.sum()

wm.__name__ = 'wa'

f = lambda x: x.sum() / df['b'] .sum()

f.__name__ = '%'

g = df.groupby('a').agg(

{'b':['sum', f, 'mean', wm],

'c':['sum','mean'],

'd':['sum']})

g.columns = g.columns.map('_'.join)

print (g)

d_sum c_sum c_mean b_sum b_% b_mean b_wa

a

5 2104 2062 5.976812 2067 0.344672 5.991304 5.969521

6 1859 1857 5.951923 1875 0.312656 6.009615 5.954667

7 2058 2084 6.075802 2055 0.342671 5.991254 6.085645

适用的解决方案:

def func(x):

# print (x)

b1 = x['b'].sum()

b2 = x['b'].sum() / df['b'].sum()

b3 = (x['b'] * x['c']).sum() / x['b'].sum()

b4 = x['b'].mean()

c1 = x['c'].sum()

c2 = x['c'].mean()

d1 = x['d'].sum()

cols = ['b sum','b %','wa', 'b mean', 'c sum', 'c mean', 'd sum']

return pd.Series([b1,b2,b3,b4,c1,c2,d1], index=cols)

g = df.groupby('a').apply(func)

print (g)

b sum b % wa b mean c sum c mean d sum

a

5 2067.0 0.344672 5.969521 5.991304 2062.0 5.976812 2104.0

6 1875.0 0.312656 5.954667 6.009615 1857.0 5.951923 1859.0

7 2055.0 0.342671 6.085645 5.991254 2084.0 6.075802 2058.0

g.loc['total']=g.sum()

print (g)

b sum b % wa b mean c sum c mean d sum

a

5 2067.0 0.344672 5.969521 5.991304 2062.0 5.976812 2104.0

6 1875.0 0.312656 5.954667 6.009615 1857.0 5.951923 1859.0

7 2055.0 0.342671 6.085645 5.991254 2084.0 6.075802 2058.0

total 5997.0 1.000000 18.009832 17.992173 6003.0 18.004536 6021.0

pandas算加权平均值_pandas和groupby:如何计算agg中的加权平均值相关推荐

  1. pandas算加权平均值_Pandas 窗口计算

    说明 Pandas 中文教程修订中,欢迎加微信 sinbam 提供建议.纠错.催更.查看更新日志 Pandas 窗口函数,为了处理数字数据,Pandas 提供几种窗口函数,如移动窗口函数(rollin ...

  2. pandas dataframe数据聚合groupby、agg、privot基于sum统计详解及实例

    pandas dataframe数据聚合groupby.agg.privot基于sum统计详解及实例 知道了sum.那么min.max.mean.median都是举一反三的事情了. 在日常的数据分析中 ...

  3. 从pandas resample说起,然后再超越resample,通过pd.Grouper、groupby、agg

    从pandas resample说起,然后再超越resample,通过pd.Grouper.groupby.agg 问题: 注意:如果你想类似按照resample那样,改变时间范围来进行数据处理或者统 ...

  4. ML之FE:pandas库中数据分析利器之groupby分组函数、agg聚合函数、同时使用groupby与agg函数组合案例之详细攻略

    ML之FE:pandas库中数据分析利器之groupby分组函数.agg聚合函数.同时使用groupby与agg函数组合案例之详细攻略 目录 pandas库中数据分析利器之groupby分组函数.ag ...

  5. dataframe groupby_详解pandas中的map、apply、applymap、groupby、agg.

    一.简介 pandas提供了很多方便简洁的方法,用于对单列.多列数据进行批量运算或分组聚合运算,熟悉这些方法后可极大地提升数据分析的效率,也会使得你的代码更加地优雅简洁. 本文就将针对pandas中的 ...

  6. python和R对dataframe的分组聚合操作:dplyr、groupby、agg、group_by、nunique、reset_index、rename、summarise、n_distinct

    python和R对dataframe的分组聚合操作:dplyr.groupby.agg.group_by.nunique.reset_index.rename.summarise.n_distinct ...

  7. groupby+(apply+agg+transform)方法的比较

    groupby+(apply+agg+transform)方法的比较 分组函数groupby+(apply+agg+transform)方法的比较 pandas模块给数据处理的能力给予了很大的助力,但 ...

  8. python:dataframe groupby后agg、apply、transfrom用法

    import pandas as pd data = pd.DataFrame({'name':['wencky','stany','barbio','barbio'],'age':[29,29,3, ...

  9. pandas合并groupby_pandas实践之GroupBy()

    官网地址:https://pandas.pydata.org/docs/reference/groupby.html pandas中对数据进行分组操作的方法,官方有很详细的教程.下面的案例是真实遇到的 ...

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

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

最新文章

  1. java.lang.ThreadLocal实现原理和源码分析
  2. BZOJ-1878: [SDOI2009]HH的项链(莫队算法)
  3. java sofa rpc_【剖析 | SOFARPC 框架】
  4. 浏览器渲染机制面试_浏览器渲染原理
  5. well 这是第一次记录
  6. Matlab Tricks(十九)—— 序列左右移的实现
  7. 《从零开始学Swift》学习笔记(Day 45)——重写方法
  8. 推荐10个高效好用的办公软件,极大提升效率
  9. 基于python的爬虫毕业论文_基于python网络爬虫及数据处理毕业论文 相关实例(示例源码)下载 - 好例子网...
  10. 目前最新android处理器排行榜,手机处理器最新排行榜天梯图_现在安卓手机的处理器哪个比较好...
  11. linux怎么刷机教程,刷机教程
  12. windows上用virtualbox运行mac虚拟机时怎样使用usb
  13. 墨者靶场-SQL手工注入漏洞测试(MySQL数据库-字符型)
  14. 【泰国留学】为什么“内卷”是必然,这就是原因
  15. ios开发之音频视频开发
  16. 显著性检验的“前世与今生”
  17. electron-vue打包出错Get “https://github-production-release-asset-2e65be.s3.amazonaws.com...
  18. zz一篇很赞同的文章:2008年以后房价会降?想都不要想
  19. arm汇编标号globel和word解释
  20. 12个最佳WordPress预订和保留插件

热门文章

  1. 聊聊深度学习这档子事(3):寻找万能的通用模型
  2. Neuralizing Regular Expressions for Slot Filling 神经网络转回自动机
  3. 艾草减肚子方法非常有效 赛乐赛骗局是真的吗
  4. 8.2.1-elasticsearch内置分词器之standard/simple
  5. 巴菲特致股东的信pdf_股神巴菲特发布致股东公开信,接班人仍是个谜
  6. 作为软件开发人员需要具备的技术技能
  7. NVIDIA显卡驱动报错
  8. java中23%5_23.5 jumpserver介绍
  9. 新浪UC,這些人你咋就不管?
  10. php杨辉三角的规律,杨辉三角的规律以及定理