Pandas 按索引平均值划分列
我有一个包含2个索引的熊猫数据帧,我想用第二个索引(a,B)的列平均值除以每个值 例如输入dfPandas 按索引平均值划分列,pandas,Pandas,我有一个包含2个索引的熊猫数据帧,我想用第二个索引(a,B)的列平均值除以每个值 例如输入df col1 col2 0 A 1 20 1 A 2 10 2 A 1 10 4 A 4 5 5 B 6 15 6 B 2 50 对于col1,我将0A 1A 2A除以2,因为1,2,1,4的平均值是2 col1 0 A 0.5 1 A
col1 col2
0 A 1 20
1 A 2 10
2 A 1 10
4 A 4 5
5 B 6 15
6 B 2 50
对于col1,我将0A 1A 2A除以2,因为1,2,1,4的平均值是2
col1
0 A 0.5
1 A 1
2 A 0.5
4 A 2
5 B 1.5
6 B 0.5
有人能想出一个好办法吗 IIUC,试试:
df.groupby(level=1)['col1'].apply(lambda x: x/x.mean())
不适用的更好方法是:
df.col1/df.groupby(level=1)['col1'].transform('mean')
输出
0 A 0.5
1 A 1.0
2 A 0.5
4 A 2.0
5 B 1.5
6 B 0.5