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

列表推导式使用Timestamp作为判断条件报类型错误该如何解决

问题原因

报错核心是运算两边类型不匹配:df['date']列存储的是pandas.Timestamp类型的时间对象,无法直接和字符串类型的日期值做大小比较。

解决方案

方案1:修改原有列表推导式

只需要把比较用的日期字符串转换为Timestamp类型即可:

import pandas as pd
v = [i >= pd.Timestamp('1920-07-01') for i in df['date']]

方案2(更推荐):使用pandas向量化运算

pandas原生支持整列的批量比较,不需要手动写列表推导式,执行效率更高,写法更简洁:

# 直接生成布尔Series,可直接用于DataFrame筛选等后续操作
bool_result = df['date'] >= '1920-07-01'
# 如果需要转换为Python列表,调用tolist()即可
v = bool_result.tolist()

注:pandas会自动解析右侧符合格式的日期字符串为Timestamp类型,不需要手动转换。

结果验证

两种方案得到的输出都符合预期:前6条(对应1920年1月到6月)为False,从1920年7月开始的条目均为True。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:57:02