如何用Pandas绘制按性别分组的年龄-余额折线图
实现分性别年龄-余额折线图(类似Excel透视效果)
步骤1:数据聚合(模拟Excel透视逻辑)
首先按Gender和Age分组,计算对应余额的统计值(比如平均值,和Excel透视表的聚合逻辑匹配)。如果你的数据中每个年龄-性别组合已经是唯一记录,可以跳过这一步:
import pandas as pd # 假设你的DataFrame名为df agg_df = df.groupby(['Gender', 'Age'])['Balance'].mean().reset_index()
步骤2:转换为宽格式
将聚合后的数据转成宽格式,让性别作为列、年龄作为索引,适配折线图的绘图需求:
pivot_df = agg_df.pivot(index='Age', columns='Gender', values='Balance')
步骤3:绘制折线图
用Pandas自带的绘图工具生成折线图,效果和Excel透视后导出的一致:
import matplotlib.pyplot as plt # 生成折线图 pivot_df.plot(kind='line', xlabel='年龄', ylabel='余额', title='不同性别余额随年龄变化趋势') plt.legend(title='性别') plt.show()
简化方案:用Seaborn直接绘制
如果不想手动转换数据格式,可直接用Seaborn处理长格式数据:
import seaborn as sns sns.lineplot(data=agg_df, x='Age', y='Balance', hue='Gender') plt.xlabel('年龄') plt.ylabel('余额') plt.title('不同性别余额随年龄变化趋势') plt.show()
提示:如果余额数据存在异常值,可先做清洗(比如过滤极端值)避免折线波动过大;也可根据需求替换聚合函数,比如用sum或median代替mean
内容的提问来源于stack exchange,提问作者Ani
相关产品推荐
相关产品推荐

