![](/img/trans.png)
[英]Write a function to perform calculations on multiple columns in a Pandas dataframe
[英]Pandas group by and perform calculations on multiple columns
我有一个房产数据
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
试试这个:
import pandas as pd
df = pd.DataFrame({'Reg':['A', 'B', 'A'], 'Area': [20, 30, 50], 'Price': [356, 98, 900]})
df['AvgUnitPrice'] = df.Price / df.Area
df['AvgUnitPrice'] = df.groupby('Reg')['AvgUnitPrice'].transform('mean')
print(df)
Output:
Reg Area Price AvgUnitPrice
0 A 20 356 17.900000
1 B 30 98 3.266667
2 A 50 900 17.900000
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.