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

如何筛选DataFrame列中的负时间差数据?

解决方案

你可以直接利用布尔索引筛选出负时间差的行,因为pandas的Timedelta类型支持直接与数值进行比较操作。

具体代码

import pandas as pd

# 针对你已生成的时间差DataFrame(列名为0)
negative_timedeltas = df[df[0] < pd.Timedelta(0)]

或者更简洁的写法,pandas会自动将整数0转换为Timedelta类型:

negative_timedeltas = df[df[0] < 0]

验证结果

运行上述代码后,你会得到仅包含负时间差的DataFrame:

0
3   -42 days 06:50:00

合并计算与筛选的写法

如果想一步完成计算、去空值和筛选,可以写成:

negative_df = (df['date1'] - df['date2']).dropna().to_frame()[lambda x: x[0] < 0]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 09:45:33