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

字符串格式日期列标题与datetime.date比较报错的解决方法

解决字符串列名与日期对象的筛选比较问题

方法一:将列名转换为日期对象后筛选

当前列名是字符串格式,无法直接和datetime.date对象比较,先把列名解析成日期类型再操作:

import pandas as pd
import datetime

# 把字符串列名转换为datetime.date对象
converted_columns = pd.to_datetime(Df.columns).date

# 生成筛选掩码
filter_mask = (converted_columns >= datetime.date(2022, 2, 1)) & (converted_columns <= datetime.date(2023, 2, 28))

# 筛选目标列
Df = Df.loc[:, filter_mask]

pd.to_datetime()能自动识别'%b %Y'格式的字符串,转换后通过.date属性得到datetime.date类型,就可以和目标日期正常比较了。

方法二:将目标日期转换为对应字符串格式匹配

把需要筛选的起始、结束日期转换成和列名一致的字符串格式,直接用字符串比较筛选:

import datetime

# 将日期转为'%b %Y'格式的字符串
start_date_str = datetime.date(2022, 2, 1).strftime('%b %Y')
end_date_str = datetime.date(2023, 2, 28).strftime('%b %Y')

# 利用字符串字典序与日期顺序一致的特性筛选
Df = Df.loc[:, (Df.columns >= start_date_str) & (Df.columns <= end_date_str)]

这种方法要求列名格式完全统一,且'%b %Y'的字符串字典序和实际日期顺序一致(比如'Feb 2022' < 'Mar 2022',符合要求)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 23:06:32