【发布时间】:2019-06-21 18:43:32
【问题描述】:
我有两个 pd.Dataframes:
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.timestamp - pd.timedelta(x), B.timestamp) 中。在SQL 中,您可以使用以下方法创建left join:
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”的方式来获得结果
【问题讨论】:
-
一个日期范围,例如
AAAA,date在A我需要在B中搜索,如果AAAA键出现在date和date之间date+somedays
标签: python pandas dataframe merge