检查 timedelta 是否大于值 (Python)

Check if timedelta is greater than value (Python)

我有一个包含多个事务的熊猫数据框,我想检查每个事务之间的间隔是否大于 10 分钟。如果是这样,我想为每笔超过 10 分钟的交易创建一个新的 Panda Dataframe。

4/29/20 5:53 AM
4/29/20 6:08 AM
4/29/20 6:09 AM
4/29/20 6:12 AM
4/29/20 6:18 AM
4/29/20 6:53 AM
4/29/20 7:31 AM
4/29/20 7:58 AM
4/29/20 8:28 AM
4/29/20 8:28 AM
4/29/20 9:06 AM
4/29/20 9:38 AM
4/29/20 9:47 AM
4/29/20 10:13 AM
4/29/20 11:04 AM
4/29/20 12:52 PM

首先,按时间对数据集进行排序。如果时间列不是日期时间格式,请使用以下代码将其转换为日期时间:

df['time'] = pd.to_datetime(df['time'])

然后为连续两行创建时间差列(以分钟为单位):

df['time_diff_min'] = (df['time'].shift(-1) - df['time']).dt.total_seconds() / 60

现在您只需要筛选新列:

df[df['time_diff_min'] > 10]

让我知道它是否有效。

您可以与字符串进行正常比较:

# convert to datetime type
df['Time'] = pd.to_datetime(df['Time'])

# time difference greater than 10 minutes
df['Time'].diff().gt('10Min')

输出:

0     False
1      True
2     False
3     False
4     False
5      True
6      True
7      True
8      True
9     False
10     True
11     True
12    False
13     True
14     True
15     True
Name: Time, dtype: bool