如何分组DataFrame水果数据并绘制符合条件的求和值图表?
解决DataFrame分组求和并绘制无重复样式图表的方法
1. 分组求和(含条件过滤)
用pandas的groupby方法对水果类别分组,计算对应Volume的总和。如果需要按指定条件筛选数据后再求和,先执行过滤操作即可:
基础分组求和
直接对所有数据按水果分组,计算Volume总和:
import pandas as pd # 假设数据已存入df这个DataFrame df_grouped = df.groupby('Fruits')['Volume'].sum().reset_index()
带条件的分组求和
比如只统计Volume大于50的记录,再分组求和:
# 先过滤符合条件的数据 df_filtered = df[df['Volume'] > 50] # 再分组求和 df_grouped = df_filtered.groupby('Fruits')['Volume'].sum().reset_index()
执行后,df_grouped中每个水果仅对应一条汇总记录,不会有重复项。
2. 绘制无重复样式的图表
基于分组后的汇总数据绘图,就能避免原数据中重复水果导致的重复样式。以下是两种常用实现方式:
使用Matplotlib绘制柱状图
import matplotlib.pyplot as plt plt.bar(df_grouped['Fruits'], df_grouped['Volume']) plt.xlabel('水果种类') plt.ylabel('总容量') plt.title('各水果总容量统计') plt.show()
使用Seaborn绘制柱状图
import seaborn as sns sns.barplot(data=df_grouped, x='Fruits', y='Volume') plt.xlabel('水果种类') plt.ylabel('总容量') plt.title('各水果总容量统计') plt.show()
生成的图表中每个水果仅显示一个对应样式的元素,同时展示的是符合条件的求和结果。
内容的提问来源于stack exchange,提问作者VondyBland
相关产品推荐
相关产品推荐

