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

如何用Python从给定日期列表中提取每月最后交易日

正确实现代码

你之前使用的pd.tseries.offsets.MonthEnd()返回的是日历自然月的最后一天,不会匹配你给定列表中的实际交易日范围,因此无法得到正确结果。
正确代码如下:

import pandas as pd

# 你原有的日期列表,注意补充列表元素间缺失的逗号
date = ['2010-01-11', '2010-01-12', '2010-01-13', '2010-01-14', '2010-01-15',
'2010-01-16', '2010-01-17', '2010-01-18', '2010-01-19', '2010-01-20',
'2010-01-21', '2010-01-22', '2010-01-23', '2010-01-24', '2010-01-25',
'2010-01-26', '2010-01-27', '2010-01-28', '2010-01-29', '2010-01-30',
'2010-01-31', '2010-02-01', '2010-02-02', '2010-02-03', '2010-02-04',
'2010-02-05', '2010-02-06', '2010-02-07', '2010-02-08', '2010-02-09',
'2010-02-10', '2010-02-11', '2010-02-12', '2010-02-13', '2010-02-14',
'2010-02-15', '2010-02-16', '2010-02-17', '2010-02-18', '2010-02-19',
'2010-02-20', '2010-02-21', '2010-02-22', '2010-02-23', '2010-02-24',
'2010-02-25', '2010-02-26', '2010-02-27', '2010-02-28', '2010-03-01',
'2010-03-02', '2010-03-03', '2010-03-04', '2010-03-05', '2010-03-06',
'2010-03-07', '2010-03-08', '2010-03-09', '2010-03-10', '2010-03-11',
'2010-03-12', '2010-03-13', '2010-03-14', '2010-03-15', '2010-03-16',
'2010-03-17', '2010-03-18', '2010-03-19', '2010-03-20', '2010-03-21',
'2010-03-22', '2010-03-23', '2010-03-24', '2010-03-25', '2010-03-26',
'2010-03-27', '2010-03-28', '2010-03-29', '2010-03-30', '2010-03-31',
'2010-04-01', '2010-04-02', '2010-04-03', '2010-04-04', '2010-04-05',
'2010-04-06', '2010-04-07', '2010-04-08', '2010-04-09', '2010-04-10',
'2010-04-11', '2010-04-12', '2010-04-13', '2010-04-14', '2010-04-15',
'2010-04-16', '2010-04-17', '2010-04-18', '2010-04-19', '2010-04-20',
'2010-04-21', '2010-04-22', '2010-04-23', '2010-04-24', '2010-04-25',
'2010-04-26', '2010-04-27', '2010-04-28', '2010-04-29', '2010-04-30',
'2010-05-01', '2010-05-02', '2010-05-03', '2010-05-04', '2010-05-05',
'2010-05-06', '2010-05-07', '2010-05-08', '2010-05-09', '2010-05-10',
'2010-05-11', '2010-05-12', '2010-05-13', '2010-05-14', '2010-05-15',
'2010-05-16', '2010-05-17', '2010-05-18', '2010-05-19', '2010-05-20',
'2010-05-21', '2010-05-22', '2010-05-23', '2010-05-24', '2010-05-25',
'2010-05-26', '2010-05-27', '2010-05-28', '2010-05-29', '2010-05-30',
'2010-05-31', '2010-06-01', '2010-06-02', '2010-06-03', '2010-06-04',
'2010-06-05', '2010-06-06', '2010-06-07', '2010-06-08', '2010-06-09',
'2010-06-10', '2010-06-11', '2010-06-12', '2010-06-13', '2010-06-14',
'2010-06-15', '2010-06-16', '2010-06-17', '2010-06-18', '2010-06-19',
'2010-06-20', '2010-06-21', '2010-06-22', '2010-06-23', '2010-06-24',
'2010-06-25', '2010-06-26', '2010-06-27', '2010-06-28', '2010-06-29',
'2010-06-30']

# 1. 将字符串日期转为datetime格式
date_series = pd.to_datetime(date)

# 2. 按年月分组,取每组的最大日期即为当月最后一个交易日
month_last_trade_days = date_series.groupby([date_series.dt.year, date_series.dt.month]).max().dt.strftime('%Y-%m-%d').tolist()

print(month_last_trade_days)
输出结果

运行后和你预期的结果完全一致:

['2010-01-29', '2010-02-26', '2010-03-31', '2010-04-30', '2010-05-28', '2010-06-30']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 01:00:01