这个问题已经被问过好几次了,但是我仍然找不到适用于我的数据集的解决方案。
我需要将我的数据框按两列进行分组,然后用剩余的列替换,并用每列的最大值对每列的累积和进行归一化。例如,groupby对象看起来像:
df.groupby(['level0','level1'])
level0 level1 col1 col2 col3 col4
a 1
2
3
...
23
24
b 1
2
3
...
23
24
我想做类似的事情
df.groupby(['level0','level1']).apply(lambda x:x.cumsum/max(x))
或
df.groupby(['level0','level1']).transform(pd.Series.cumsum)
后者实际上并没有将新列替换旧列,也没有进行规范化,但这可能是一个起点。
但是,作为输出,我总是得到与输入中完全相同的列,而不是归一化的累积总和。我尝试了其他问题中提出的不同方法,但始终得到相同的结果。