我有两个带有不同标签的数据框,分别为df1
和df2
。df1
包含(除其他事项外)时间间隔列表(开始/停止)。df2
包含带有时间戳的事件列表。
我想检查df1
中的哪些时间间隔包括来自df2
的事件。哪个特定事件无关紧要,多少事件无关紧要。是/否就足够了。
我所拥有的(简体):
df1
Index Start_time Stop_time (other columns...)
1 1 5
2 8 10
3 20 22
4 23 40
df2
Index Event_time (other columns...)
1 2
2 400
3 21
4 40
我想要的是:
df3
Index Start_time Stop_time Event Event_time(optional) (other columns...)
1 1 5 Yes 2
2 8 10 No NaN
3 20 22 Yes 21
4 23 40 Yes 40
请注意,(其他列)在两个数据框中都是不同的。因此,直接比较会产生
Can only compare identically-labeled DataFrame objects
错误。如何比较标签相同的熊猫数据框对象中的值?
编辑:This和this看起来像在这里适用,但到目前为止没有结果
最佳答案
考虑使用series between:
df = df[df['event_time'].between(<Start_time>, <Stop_time>, inclusive=True)]
编辑:
In [151]
df1 = pd.DataFrame({'Start_time':[1,8,20,23], 'Stop_time':[5,10,22,40]})
In [152]
df2 = pd.DataFrame({'Event_time':[2, 400, 21, 40]})
In [153]
df2['Event'] = df2['Event_time'].between(df1['Start_time'], df1['Stop_time'], inclusive=True)
In [154]
df2
Out [154]:
Event_time Event
0 2 True
1 400 False
2 21 True
3 40 True
关于python - 如何比较标签相同的 Pandas 数据框对象中的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41979142/