鉴于df
:
Value Machine
0 10 A
1 20 A
2 30 A
5 100 B
6 200 B
7 300 B
如何计算新列df['norm']
,其中机器A的值除以机器A的平均值(按元素方式),而机器B的值除以机器B的平均值,得出:
Value Machine norm
0 10 A 0.5
1 20 A 1.0
2 30 A 1.5
5 100 B 0.5
6 200 B 1.0
7 300 B 1.5
请注意,唯一机器的数量是可变的。
我可以这样计算每台机器的平均值groupby
:
machine_mean = df.groupby("Machine").mean().reset_index()
我尝试遍历这些方法,但无法弄清楚如何进行元素明智的引用,而同时仅将每个方法应用于正确的行。
我认为列表理解会起作用,但是我遇到了与上述相同的问题。
让我们做transform
与mean
df['norm'] = df['Value']/df.groupby('Machine')['Value'].transform('mean')
df
Out[209]:
Value Machine norm
0 10 A 0.5
1 20 A 1.0
2 30 A 1.5
5 100 B 0.5
6 200 B 1.0
7 300 B 1.5
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句