基于现有列的熊猫多索引数据框中的新列

时间:2021-02-10 16:01:50

标签: python pandas

我找不到这个特定问题的答案,所以想分享一下。

问题

给定以下数据框:

>>>: 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 值的函数?

1 个答案:

答案 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
相关问题