python - Pandas 按多列分组并执行计算
问题描述
我有房地产数据
Reg Area Price
A 20 356
B 30 98
A 50 900
我想得到
Reg Area Price AvgUnitPrice
A 20 356 17.9
B 30 98 3.26
A 50 900 17.9
对于每个区域,获取所有属性并计算该区域每单位面积的平均价格并创建具有该值的新列
例如对于区域 A,我们有
1. Area = 20, Price= 356 => Price per Area = 17.8
2. Area = 50, Price= 900 => Price per Area = 18
因此区域 A 的单位面积平均价格变为
(17.8 + 18) / 2 = 17.9
然后将此值传递给所有区域 A 属性
解决方案
另一种方法
a = (df.groupby('Reg', sort=False)['Price'].sum()/df.groupby('Reg',sort=False)['Area'].sum()).reset_index(name='AuP')
df.merge(a, on= 'Reg',sort=False)
(输出
Reg Area Price AuP
A 20 356 17.942857
A 50 900 17.942857
B 30 98 3.266667
推荐阅读
- kubernetes - 探索 Azure Kubernetes 卷内容
- excel - 运行时错误 91 “对象变量或未设置块变量”
- r - Matix 指数层(自定义:R 中的 Keras)
- android - Android 地理围栏不会在没有触发位置服务的情况下自行触发
- javascript - 使用 Storybook 解决组件中的绝对/别名导入
- python - 在熊猫数据框列上调用外部函数
- java - 如何在哈希图中存储二维数组元素?(第1部分)
- python - Folium 自定义平铺地图仅显示灰色框
- ios - iOS App to MacOS App - (使用自定义框架构建失败)
- regression - 残差有单位吗?