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

如何在Pandas DataFrame中绘制2016-2017年日期出现频率

解决2016-2017年日期出现频率绘制的问题

没问题,我来帮你搞定这个需求!你已经掌握了全时段年份频率的绘制方法,现在只需要先筛选出目标区间的数据,再根据需要的时间粒度统计频率即可,具体步骤如下:

1. 筛选2016-2017年的数据

首先从原DataFrame中提取出last_payout在2016年1月1日到2017年12月31日之间的记录,这里有两种常用方式:

方式一:精确区间筛选(推荐)

这种方式能严格限定时间范围,避免意外包含其他年份的数据:

# 创建筛选掩码
mask = (df['last_payout'] >= '2016-01-01') & (df['last_payout'] <= '2017-12-31')
# 提取目标列的筛选结果
filtered_dates = df.loc[mask, 'last_payout']

方式二:按年份筛选

如果只需要匹配年份,也可以直接用dt.year来筛选:

filtered_dates = df[df['last_payout'].dt.year.isin([2016, 2017])]['last_payout']

2. 统计并绘制日期出现频率

根据你想要的时间粒度(按天/按月),选择对应的分组方式:

情况一:按天统计频率

如果需要查看每天的日期出现次数,可以直接按日期本身分组:

# 按天分组计数
daily_freq = filtered_dates.groupby(filtered_dates).count()
# 绘制折线图(天数较多时,折线图比柱状图更清晰)
daily_freq.plot(kind='line', figsize=(12, 6), title='2016-2017年每日日期出现频率')

情况二:按月统计频率

如果需要更宏观的月度趋势,建议按月分组(两年共24个月份,柱状图展示更直观):

# 按月分组(用to_period('M')将日期转换为月度周期)
monthly_freq = filtered_dates.groupby(filtered_dates.dt.to_period('M')).count()
# 绘制柱状图
monthly_freq.plot(kind='bar', figsize=(10, 5), title='2016-2017年月度日期出现频率')

补充说明

  • 如果你之前的全时段统计是按年份,现在筛选后可以根据需求调整分组粒度,确保图表展示的信息符合你的分析目标;
  • 注意如果按天统计的话,数据量可能较大,建议设置合适的图表尺寸(figsize参数)来提升可读性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:45:42