You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python的Pandas绘制特定年份数据的箱线图?

嘿,别担心,刚上手Pandas遇到这种需求很正常!我来一步步带你搞定针对特定年份/赛季绘制箱线图的操作,保证清晰好懂~

第一步:先把需要的工具库导进来

我们需要用Pandas处理数据,用Seaborn(或者Matplotlib)来画箱线图——Seaborn画出来的图更美观,代码也更简洁,所以优先推荐它:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
第二步:加载你的数据集并确认结构

先把数据加载进来,假设你的数据是CSV格式(如果是Excel就用pd.read_excel()),然后看看前几行确认年份/赛季列的格式:

# 替换成你的数据集路径
df = pd.read_csv('your_data.csv')
# 查看数据结构,确认年份列的名称(比如叫season、year等)
print(df.head())
第三步:筛选你需要的特定年份/赛季数据

这里分两种常见情况:

  • 如果你的年份是字符串格式(比如直接是"2000-01"这种赛季格式),直接用isin()筛选目标赛季:
# 定义你要分析的目标赛季
target_seasons = ['2000-01', '2006-07']
# 筛选出对应的数据
filtered_df = df[df['season'].isin(target_seasons)]
  • 如果你的年份是数值格式(比如只有2000、2006这种单独的年份),可以先把它转换成赛季格式再筛选:
# 把年份转换成"YYYY-YY"的赛季格式
df['season'] = df['year'].apply(lambda x: f"{x}-{str(x+1)[-2:]}")
# 再筛选目标赛季
target_seasons = ['2000-01', '2006-07']
filtered_df = df[df['season'].isin(target_seasons)]

如果只需要单个赛季(比如仅2000-01),直接用filtered_df = df[df['season'] == '2000-01']就行。

第四步:绘制箱线图

现在用筛选后的数据画图,假设你要分析的数值列叫score(替换成你实际的列名,比如销售额、成绩等):

# 设置绘图风格,让图更好看
sns.set_style("whitegrid")

# 创建画布,设置大小
plt.figure(figsize=(8, 6))

# 绘制箱线图:x轴是赛季,y轴是你要分析的数值
sns.boxplot(x='season', y='score', data=filtered_df)

# 添加标题和坐标轴标签
plt.title('数值分布对比(2000-01 vs 2006-07)', fontsize=14)
plt.xlabel('赛季', fontsize=12)
plt.ylabel('得分/数值', fontsize=12)

# 显示图形
plt.show()
小提示
  • 如果你的年份列是日期类型(datetime),可以先提取年份再处理:
df['year'] = df['date_column'].dt.year
  • 如果筛选后数据为空,检查一下你的赛季字符串和数据里的格式是否完全一致(比如有没有空格、大小写问题)

如果你的数据集结构和示例不一样,只需要把代码里的列名替换成你实际的列名就好,有细节问题随时问~

内容的提问来源于stack exchange,提问作者paddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:03:38