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