我想要做的是按 ColA 分組,并計算該組的 ColB 值與 ColB 中值之間的比率。此比率將是一個新列。
原始DF
ColA ColB
grp1 2
grp1 10
grp1 8
grp1 22
grp2 6
grp2 14
grp2 12
grp2 32
grp3 10
grp3 20
grp3 30
grp3 6
grp1 的中位數是 9.0,grp2 是 13.0,grp3 是 15。因此新列 (ColC) 只是 ColB 和組中位數之間的比率。所以:
所需DF
ColA ColB ColC
grp1 2 0.22
grp1 10 1.11
grp1 8 0.89
grp1 22 2.44
grp2 6 0.46
grp2 14 1.07
grp2 12 0.92
grp2 32 2.46
grp3 10 0.66
grp3 20 1.33
grp3 30 2.00
grp3 6 0.40
任何建議表示贊賞!
uj5u.com熱心網友回復:
嘗試groupby:
data["ColC"] = data["ColB"].div(data.groupby("ColA")["ColB"].transform("median"))
>>> data
ColA ColB ColC
0 grp1 2 0.222222
1 grp1 10 1.111111
2 grp1 8 0.888889
3 grp1 22 2.444444
4 grp2 6 0.461538
5 grp2 14 1.076923
6 grp2 12 0.923077
7 grp2 32 2.461538
8 grp3 10 0.666667
9 grp3 20 1.333333
10 grp3 30 2.000000
11 grp3 6 0.400000
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/353848.html
上一篇:部分字串過濾器熊貓
