为每个组创建一个新的 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'))
我想创建一个新列,新列中的每个条目都将是它们所属组的总百分比的一部分。
之前:
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'))