如何实现条形图中total_noise_sent>5的用户数量合并求和?
处理方案:合并total_noise_sent>5的用户数量
推荐在数据分组前完成合并处理,这样数据逻辑更清晰,后续绘图也更直接。
具体步骤
- 先对
total_noise_sent字段做分组转换:把大于5的数值统一标记为">5",小于等于5的保留原数值 - 基于转换后的字段分组聚合用户数量
- 再用seaborn绘图
代码示例
# 第一步:转换total_noise_sent字段 df['total_noise_sent_grouped'] = df['total_noise_sent'].apply(lambda x: x if x <=5 else '>5') # 第二步:分组聚合用户数量 graph_noise = df.groupby(['total_noise_sent_grouped', 'gr']).agg({'uid':'count'}).reset_index() # 第三步:绘图 sb.barplot(x="total_noise_sent_grouped", y="uid", hue="gr", data=graph_noise) plt.show()
为什么不推荐在绘图阶段处理?
seaborn的barplot主要负责可视化,数据的聚合、分组逻辑应该放在数据预处理阶段完成,这样不仅绘图代码更简洁,后续如果需要复用处理后的数据做其他分析也更方便。如果硬要在绘图阶段调整,反而需要额外的自定义逻辑,徒增复杂度。
内容的提问来源于stack exchange,提问作者User_001
相关产品推荐
相关产品推荐

