我有两个带有不同标签的数据框,分别为df1df2

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错误。

如何比较标签相同的熊猫数据框对象中的值?

编辑:Thisthis看起来像在这里适用,但到目前为止没有结果

最佳答案

考虑使用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/

10-16 10:57