截取pandas时间相减为正的行
时间: 2023-10-17 14:06:07 浏览: 78
pandas 两列时间相减换算为秒的方法
5星 · 资源好评率100%
假设你有一个包含两个时间戳的 pandas DataFrame,如下所示:
```
import pandas as pd
df = pd.DataFrame({'start': ['2021-01-01 10:00:00', '2021-01-02 11:00:00', '2021-01-03 12:00:00'],
'end': ['2021-01-01 11:00:00', '2021-01-02 09:00:00', '2021-01-03 14:00:00']})
df['start'] = pd.to_datetime(df['start'])
df['end'] = pd.to_datetime(df['end'])
print(df)
```
输出:
```
start end
0 2021-01-01 10:00:00 2021-01-01 11:00:00
1 2021-01-02 11:00:00 2021-01-02 09:00:00
2 2021-01-03 12:00:00 2021-01-03 14:00:00
```
你可以使用 pandas 的时间差函数 `pd.Timedelta` 来计算时间差,然后使用条件过滤器来筛选出时间差为正的行,如下所示:
```
duration = df['end'] - df['start']
positive_duration = duration[duration > pd.Timedelta(0)]
result = df.loc[positive_duration.index]
print(result)
```
输出:
```
start end
0 2021-01-01 10:00:00 2021-01-01 11:00:00
2 2021-01-03 12:00:00 2021-01-03 14:00:00
```
这样,你就得到了一个只包含时间差为正的行的 DataFrame。
阅读全文