检查timedelta是否大于值(Python)

问题描述 投票:0回答:2

我有一个包含多个交易记录的熊猫数据框,想要检查每个交易记录之间的间隔是否大于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
python pandas timedelta
2个回答
0
投票

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

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]

让我知道它是否有效。


0
投票

您可以只对字符串进行常规比较:

# 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
© www.soinside.com 2019 - 2024. All rights reserved.