如何解决如何检测出现在比指定间隔更大的间隔上的记录?
我有以下熊猫数据帧:
Col1 Date Time
A 29/03/2019 00:00
A 29/03/2019 04:00
A 29/03/2019 08:00
A 29/03/2019 12:00
A 29/03/2019 16:00
A 29/03/2019 20:00
A 30/03/2019 00:00
A 30/03/2019 08:00
A 30/03/2019 12:00
A 30/03/2019 16:00
A 30/03/2019 20:00
A 31/03/2019 04:00
基本上,数据每隔 4
小时提供一次。我需要返回不符合此条件的行。
预期输出:
A 30/03/2019 08:00
A 31/03/2019 04:00
这两行缺少中间记录。
我该怎么做?
解决方法
尝试创建一个布尔索引来确定行之间的差异超过 4 小时的位置。
通过将 Date
和 Time
相加来创建日期时间列,diff
以获取行之间的差异,然后与 TimeDelta 进行比较。
修改 TimeDelta (pd.to_timedelta("4:00:00")
) 以更改所需的间隔。
import pandas as pd
df = pd.DataFrame({'Col1': {0: 'A',1: 'A',2: 'A',3: 'A',4: 'A',5: 'A',6: 'A',7: 'A',8: 'A',9: 'A',10: 'A',11: 'A'},'Date': {0: '29/03/2019',1: '29/03/2019',2: '29/03/2019',3: '29/03/2019',4: '29/03/2019',5: '29/03/2019',6: '30/03/2019',7: '30/03/2019',8: '30/03/2019',9: '30/03/2019',10: '30/03/2019',11: '31/03/2019'},'Time': {0: '00:00',1: '04:00',2: '08:00',3: '12:00',4: '16:00',5: '20:00',6: '00:00',7: '08:00',8: '12:00',9: '16:00',10: '20:00',11: '04:00'}})
# Create Index
m = pd.to_datetime(
df['Date'] + df['Time'],format='%d/%m/%Y%H:%M'
).diff() > pd.to_timedelta("4:00:00")
# Use Index to Filter DF
out = df[m]
# For Display
print(out)
out
:
Col1 Date Time
7 A 30/03/2019 08:00
11 A 31/03/2019 04:00
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。