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

如何创建包含每月首日和末日的Pandas DataFrame

问题描述

需要创建如下结构的DataFrame:

0 2022-01-01
1 2022-01-31
2 2022-02-01
3 2022-02-28
4 2022-03-01
5 2022-03-31

尝试了以下代码但未解决问题:

dfpd.date_range(start = '1/1/2022', end ='6/30/2022', freq='M'), 
解决方案

你得同时生成每月1号和月末的日期,再合并排序才能得到目标结果。具体步骤如下:

  1. 先导入pandas,生成月初日期序列(用freq='MS'表示每月起始):
import pandas as pd

start_dates = pd.date_range(start='2022-01-01', end='2022-03-31', freq='MS')
  1. 生成月末日期序列(用freq='M'):
end_dates = pd.date_range(start='2022-01-01', end='2022-03-31', freq='M')
  1. 把两个序列合并、排序,再转成DataFrame:
combined_dates = pd.concat([pd.Series(start_dates), pd.Series(end_dates)]).sort_values().reset_index(drop=True)
df = pd.DataFrame(combined_dates, columns=['date'])

运行后就能得到你要的结构:

date
0 2022-01-01
1 2022-01-31
2 2022-02-01
3 2022-02-28
4 2022-03-01
5 2022-03-31

另外提一句,你原代码里有两个小问题:一是dfpd应该写成pd(前提是已经执行了import pandas as pd),二是代码末尾多了个多余的逗号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 20:05:29