【问题标题】:Pandas adding percentage column by grouping熊猫通过分组添加百分比列
【发布时间】:2018-01-19 07:56:22
【问题描述】:

按行计算值占总数百分比的语法是什么?
例如,我想根据它的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)

非常感谢:)

【问题讨论】:

    标签: pandas percentage


    【解决方案1】:

    谢谢@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
    

    【讨论】:

    • 我认为应该是总和:-)
    • df['Percentage']=df.Value/df.groupby(['Item','Name1']).Value.transform('sum')他按两栏分组:-)
    • 没关系 :-) 我的朋友
    猜你喜欢
    • 2023-01-26
    • 1970-01-01
    • 2018-12-23
    • 2022-11-17
    • 2017-03-05
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多