Pandas通过分组

时间:2018-01-18 23:45:59

标签: pandas percentage

用行计算总值百分比的语法是什么?
例如,我想根据其Item和Name1:

为我的df添加一个百分比列
Item  Name1   Name2  Value
111   x       a      1
111   x       b      2
111   y       a      1
222   x       i      1
222   y       j      1
222   y       k      1

通过对Item和Name1进行分组,结果将是:

Item  Name1   Name2  Value  Percent
111   x       a      1      .33     because (1/3)
111   x       b      2      .67     because (2/3)
111   y       a      1      1       because (1/1)
222   x       i      1      1       because (1/1)
222   y       j      1      .5      because (1/2)
222   y       k      1      .5      because (1/2)

非常感谢:)

1 个答案:

答案 0 :(得分:2)

感谢@Wen for correction!

In [237]: df.groupby(['Item','Name1'])['Value'].transform(lambda x: x/x.sum())
Out[237]:
0    0.333333
1    0.666667
2    1.000000
3    1.000000
4    0.500000
5    0.500000
Name: Value, dtype: float64