使用Python/Pandas从基于部分日期交集的数据帧中查找值

2024-10-01 00:14:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个包含日期范围的数据框

df1:
        Year                              Range
0 2017-03-01  [2017-03-01, 2018-06-30 23:59:59]

df2:
        Text                              Range
0 lorel ipsum [2017-07-01, 2017-07-01 06:00:00]

如果来自df2的行中的范围与df1中的范围重叠,我希望将来自df2的文本引入df1。预期结果:

df1
        Year                              Range  Text
0 2017-03-01  [2017-03-01, 2018-06-30 23:59:59]  lorel ipsum

我目前正在使用未执行的ItErrors()执行此操作

我知道我可以使用合并然后过滤来做类似的事情,但是,我正在寻找的解决方案更像这样(如果可能的话):

myt=df2.loc[0,'Range']
df1.loc[df1['Range'].overlaps(myt)])

我意识到我刚才提供的语法是不正确的,因为重叠不接受序列,但是,我正在寻找某种“查找”函数,当重叠为“True”时,该函数将返回值

例如,这是可行的,但我需要能够在不进行迭代的情况下将其应用于系列:

print(df1.loc[0,'Range'].overlaps(myt))

我在stack上查看的许多其他资源似乎都使用了间隔索引和其他模块/库。似乎应该有一种更简洁的方法来使用可用的函数来实现这一点


Tags: 数据函数text文本range事情yearloc