我找不到这个特定问题的答案,所以想分享一下。
给定以下数据框:
>>>: import pandas as pd
>>>: df = pd.DataFrame({
...: 'A': [1, 1, 2, 2],
...: 'B': ['a', 'b', 'a', 'b'],
...: 'C': [1, 2, 3, 4]
...: }).set_index(['A','B'])
>>>: df
C
A B
1 a 1
b 2
2 a 3
b 4
如何添加新列 D
,其值是分组在每个 C
下的 A
值的函数?
答案 0 :(得分:0)
>>>: df['D'] = df.groupby('A')['C'].transform(lambda x: x / x.sum())
>>>: df
C D
A B
1 a 1 0.333333
b 2 0.666667
2 a 3 0.428571
b 4 0.571429