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

过滤Pandas DataFrame的Timestamp列无结果且无报错,求解决方案

问题解决:Pandas按Timestamp过滤无结果的原因及方案

问题根源

你代码里的df['Timestamp']是通过pd.to_datetime(df['date']).dt.time生成的,这一列的元素是**datetime.time对象**,而非字符串。当你用字符串"09:15:00"和它做相等比较时,类型不匹配,自然找不到任何匹配的行。

解决方法

方法1:用datetime.time对象作为过滤条件

引入datetime模块,构造对应时间的time对象来匹配:

from datetime import time

# 构造09:15:00的time对象
filt = df['Timestamp'] == time(9, 15, 0)
initial_balance = df.loc[filt]

方法2:把Timestamp列转为字符串后再过滤

先将datetime.time类型的列转为字符串类型,再用字符串匹配:

# 转换Timestamp列类型为字符串
df['Timestamp'] = df['Timestamp'].astype(str)
# 执行过滤
filt = df['Timestamp'] == "09:15:00"
initial_balance = df.loc[filt]

方法3:直接生成字符串类型的Timestamp列

修改Timestamp列的生成逻辑,直接提取时间字符串,省去后续类型转换:

# 替换原来的Timestamp生成代码
df['Timestamp'] = pd.to_datetime(df['date']).dt.strftime("%H:%M:%S")
# 直接用字符串过滤
filt = df['Timestamp'] == "09:15:00"
initial_balance = df.loc[filt]

验证小技巧

可以先打印列的元素类型,确认问题:

# 查看Timestamp列第一个元素的类型
print(type(df['Timestamp'].iloc[0]))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 14:15:18