gpt4 book ai didi

python - 使用不等式条件从 pandas 数据帧中查找值到另一个数据帧中

转载 作者:太空宇宙 更新时间:2023-11-03 21:19:39 24 4
gpt4 key购买 nike

我有两个 pd.Dataframe:

A = [ timestamp      key 
12-12-2012:00 AAAA
13-12-2012:00 AAAA
...]

第二个:

B = [ timestamp      key 
12-12-2015:00 AAAA
13-12-2012:00 BBBB
...]

我想搜索 A 中的每一行是否在 B 中存在一行(具有相同的键),其中日期位于 (B.时间戳 - pd.timedelta(x), B.timestamp)。在SQL中,您可以使用以下方式进行左连接:

ON (A.key = B.key) AND (A.timestamp >= B.timestamp - pd.timedelta(x)) AND (A.timestamp <= B.timestamp)

有没有办法在pandas中获得相同的结果?

pd。到目前为止,我的解决方案是对每个日期复制/追加 B 数据帧 n 次,直到 B.timestamp - pd.timedelta(x)。考虑所有A.timestamp,然后应用pd.merge,但它必须是一种更“Pythonic”的方式来获取结果

最佳答案

您可以使用 where 来实现此目的,我使用一个简单的示例,您可以使用您的数据复制相同的示例:

import pandas as pd
a=pd.DataFrame(columns=["A","B"])
a["A"]=[1,2,3]
a["B"]=[11,22,33]

print(a.where((a.A > 1) & (a.A <=3)).dropna())

输出将是:

    A   B
1 2.0 22.0
2 3.0 33.0

注意:上面代码中1或3的位置可以使用任意值

关于python - 使用不等式条件从 pandas 数据帧中查找值到另一个数据帧中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54407491/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com