假设您已将数据框称为 df,您可以执行以下操作:
第 1 点
在 clusters 列上使用 groupby() 方法并使用 sum() 聚合方法计算总和,例如:
df_grouped = df.groupby('clusters').sum()
完成后,您可能希望将该数据框中的列重命名为更有用的名称,例如:
df_grouped = df_grouped.rename(columns={'count': 'cluster_count'})
第 2 点
要将总和返回到您的数据框中,您可以将 grouped_df 与原始数据框合并,例如:
df_merged = pd.merge(left=df,
right=df_grouped,
left_on='clusters',
right_index=True)
使用“集群”列的位置是左侧数据框的键,并使用 df_grouped 数据框的索引(在第 1 点中的groupby() 操作之后,集群值将在索引中)。
第 3 点
最后一步现在是微不足道的。只需使用您的最终数据框并添加一个包含所需计算结果的新列:
df_merged['count_pct_cluster'] = df_merged['count'] / df_merged['cluster_count'] * 100