如何在Python中将分组计算的条件概率结果添加为DataFrame新列?
问题解答
当前代码无法直接实现将计算结果作为新列添加到原DataFrame的需求。
原因是你写的代码运行后会生成一个带多层索引(mode、income_level、service)的Series,它的结构和原DataFrame不匹配,没法直接关联添加为新列。
可以用以下步骤实现需求:
- 第一步:用
normalize=True参数直接计算条件概率,并把多层索引转为普通列,生成一个新的DataFrame:
prob_df = df.groupby(['mode','income_level'])['service'].value_counts(normalize=True).reset_index(name='service_prob')
- 第二步:通过合并操作把概率列添加回原DataFrame:
df = df.merge(prob_df, on=['mode','income_level','service'], how='left')
内容的提问来源于stack exchange,提问作者Nazanin
相关产品推荐
相关产品推荐

