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

如何基于按日DataFrame绘制按年月分组的sns.boxplot?

实现步骤

1. 预处理日期列

首先确保你的date列是datetime类型,否则无法提取年月信息:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt

# 转换date列为datetime格式
df['date'] = pd.to_datetime(df['date'])

2. 提取年月作为分组字段

从date列中提取<年,月>格式的字段,有两种常用方式:

  • 方式一:生成Period类型(自带时间排序,推荐)
df['year_month'] = df['date'].dt.to_period('M')
  • 方式二:生成字符串格式(格式为YYYY-MM,直观易读)
df['year_month'] = df['date'].dt.strftime('%Y-%m')

3. 绘制箱线图

直接使用seaborn.boxplot,指定x为新生成的年月列,y为B列:

# 绘制箱线图
sns.boxplot(data=df, x='year_month', y='B')

# 旋转x轴标签,避免标签重叠
plt.xticks(rotation=45)

# 显示图形
plt.show()

补充说明

  • 若用to_period('M')生成年月字段,x轴会自动按时间顺序排列;若用字符串格式且数据未按时间排序,可先执行df = df.sort_values('year_month')
  • 可通过palette参数自定义箱线图配色,例如sns.boxplot(..., palette='Set2')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 22:46:03