与同一子组中的项目相比的项目价格因素
Item price factor compared to items in same subgroup
我有一个大型数据集,包括商品、商品子组和价格。简化版如下所示:
Item
Subgroup
Price
1
A
10
2
A
12
3
B
2
4
B
6
5
B
4
6
C
7
7
C
8
我想添加“相对价格”列。此列表示每个项目的价格与同一子组中项目的平均价格的比较。该值等于商品价格除以同一子组中商品的平均价格,四舍五入到小数点后两位。例如,对于项目 1,此变量等于 10/11 = 0.91。因此,我想去:
Item
Subgroup
Price
relativePrice
1
A
10
0.91
2
A
12
1.09
3
B
2
0.50
4
B
6
1.50
5
B
4
1
6
C
7
0.93
7
C
8
1.07
谁能帮我在 Python 中编码这个问题?
使用Groupby.transform
and round
:
In [352]: df['relativePrice'] = round(df['Price'] /df.groupby('Subgroup')['Price'].transform('mean'), 2)
In [353]: df
Out[353]:
Item Subgroup Price relativePrice
0 1 A 10 0.91
1 2 A 12 1.09
2 3 B 2 0.50
3 4 B 6 1.50
4 5 B 4 1.00
5 6 C 7 0.93
6 7 C 8 1.07
我有一个大型数据集,包括商品、商品子组和价格。简化版如下所示:
Item | Subgroup | Price |
---|---|---|
1 | A | 10 |
2 | A | 12 |
3 | B | 2 |
4 | B | 6 |
5 | B | 4 |
6 | C | 7 |
7 | C | 8 |
我想添加“相对价格”列。此列表示每个项目的价格与同一子组中项目的平均价格的比较。该值等于商品价格除以同一子组中商品的平均价格,四舍五入到小数点后两位。例如,对于项目 1,此变量等于 10/11 = 0.91。因此,我想去:
Item | Subgroup | Price | relativePrice |
---|---|---|---|
1 | A | 10 | 0.91 |
2 | A | 12 | 1.09 |
3 | B | 2 | 0.50 |
4 | B | 6 | 1.50 |
5 | B | 4 | 1 |
6 | C | 7 | 0.93 |
7 | C | 8 | 1.07 |
谁能帮我在 Python 中编码这个问题?
使用Groupby.transform
and round
:
In [352]: df['relativePrice'] = round(df['Price'] /df.groupby('Subgroup')['Price'].transform('mean'), 2)
In [353]: df
Out[353]:
Item Subgroup Price relativePrice
0 1 A 10 0.91
1 2 A 12 1.09
2 3 B 2 0.50
3 4 B 6 1.50
4 5 B 4 1.00
5 6 C 7 0.93
6 7 C 8 1.07