【问题标题】:Create a new 100 % total column for every group为每个组创建一个新的 100% total 列
【发布时间】:2021-11-15 18:24:40
【问题描述】:

我想创建一个新列,其中新列中的每个条目都将是它们所属组的百分比总数的一部分。

之前:

for i in range(len(df7)):
    df7['perc'] = (df7[df7.loc[:, 'group'] == df7['group'][i]]['test']) / (df7[df7.loc[:, 'group'] == df7['group'][i]].test.sum())
    print(df7['perc'][i])

之后:

【问题讨论】:

    标签: python pandas dataframe aggregation percentage


    【解决方案1】:

    使用Series.mapSeries.value_counts 并划分列:

    df7['perc'] = df7['test'].div(df7['group'].map(df7['group'].value_counts()))
    

    替代方案:

    df7['perc'] = df7['test'].div(df7.groupby('group')['group'].transform('size'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-24
      • 2012-04-26
      • 1970-01-01
      • 1970-01-01
      • 2022-01-28
      • 2022-11-23
      • 1970-01-01
      相关资源
      最近更新 更多