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

如何在Pandas中按年、月、季度等日期条件筛选列?

Pandas按日期维度筛选列(年/月/季度/固定日)

你的数据框列名是datetime类型,要按年、月、季度或固定日期筛选列,以下是针对不同需求的实现方法:

1. 筛选每年的同一天(如9月14日)

利用列名的dt.month和dt.day属性匹配目标日期:

# 筛选所有9月14日的列
filtered_df = df.loc[:, (df.columns.month == 9) & (df.columns.day == 14)]
print(filtered_df)

运行后会保留2022-09-14、2021-09-14、2020-09-14、2019-09-14这些列。

2. 按月份筛选(如所有9月的列)

直接匹配dt.month属性:

# 筛选所有9月的列
sep_df = df.loc[:, df.columns.month == 9]
print(sep_df)

3. 按季度筛选(如第三季度)

Pandas的datetime类型支持dt.quarter属性(1-4对应四个季度):

# 筛选第三季度(7-9月)的列
q3_df = df.loc[:, df.columns.quarter == 3]
print(q3_df)

你的示例中第三季度的列包括2022-09-14、2022-08-14、2022-07-14、2021-09-14、2020-09-14、2019-09-14。

4. 按年份筛选(如2022年的列)

匹配dt.year属性:

# 筛选2022年的列
year2022_df = df.loc[:, df.columns.year == 2022]
print(year2022_df)

补充说明

  • 若列名是字符串类型,需先转换为datetime:df.columns = pd.to_datetime(df.columns)
  • 多条件组合时,用&(且)、|(或)连接,注意添加括号避免优先级问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:01:17