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

如何提取重采样后DataFrame的DatetimeIndex日期值并转为列表?

解决pandas重采样后DatetimeIndex提取纯日期列表的问题

当使用resample()对DataFrame重采样后,DatetimeIndex中的Timestamp会带有freq参数,但这并不影响提取纯日期部分,以下几种方法可以将日期整理为列表:

方法1:提取日期字符串列表

适合需要字符串格式日期的场景,可自定义格式化样式:

import pandas as pd
import numpy as np

df = pd.DataFrame(
    data=np.random.randint(0, 10, 100),
    index=pd.date_range('20220101', periods=100),
    columns=['a'],
)

resampled_df = df.resample('M').mean()
# 格式化为YYYY-MM-DD字符串并转为列表
date_str_list = resampled_df.index.strftime('%Y-%m-%d').tolist()
print(date_str_list)
# 输出示例:['2022-01-31', '2022-02-28', '2022-03-31', '2022-04-30']

方法2:提取datetime.date对象列表

适合需要Python原生日期对象的场景:

# 遍历DatetimeIndex,提取date对象
date_obj_list = [ts.date() for ts in resampled_df.index]
print(date_obj_list)
# 输出示例:[datetime.date(2022, 1, 31), datetime.date(2022, 2, 28), datetime.date(2022, 3, 31), datetime.date(2022, 4, 30)]

方法3:提取Python原生datetime对象列表

如果需要完整的datetime对象(包含时间部分,此处为00:00:00):

datetime_list = resampled_df.index.to_pydatetime().tolist()
print(datetime_list)
# 输出示例:[datetime.datetime(2022, 1, 31, 0, 0), datetime.datetime(2022, 2, 28, 0, 0), ...]

说明:虽然遍历看到的Timestamp带有freq参数,但它的日期属性是独立的,上述方法都能忽略freq提取所需的日期内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 21:15:36