为每个组创建一个新的 100% 总计列

Create a new 100 % total column for every group

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

之前:

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])

之后:

使用Series.map with Series.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'))