【发布时间】:2017-05-02 19:39:42
【问题描述】:
我有两个数据框,我想根据时间范围连接它们 例如
数据框 A
user timestamp product
A 2015/3/13 1
B 2015/3/15 2
数据框 B
user time behavior
A 2015/3/1 2
A 2015/3/8 3
A 2015/3/13 1
B 2015/3/1 2
我想如下连接 2 个数据帧(帧 B 左连接到帧 A) “timestamp1”列在“timestamp”列之前 7 天 例如,当时间戳为 3/13 时,则 3/6-13 在范围内 否则不要连接
user timestamp product time1 behavior
A 2015/3/13 1 2015/3/8 3
A 2015/3/13 1 2015/3/13 1
B 2015/3/15 2 NaN NaN
sql 代码如下所示
select * from
B left join A
on user
where B.time >= A.timestamp - 7 & B.time <= A.timestamp
##WHERE B.time BETWEEN DATE_SUB(B.time, INTERVAL 7 DAY) AND A.timestamp ;
我们如何在 python 上做到这一点?
只能想到以下,不知道如何配合时间..
new = pd.merge(A, B, on='user', how='left')
谢谢,对不起..
【问题讨论】:
-
您的时间/时间戳字段是否已格式化为 pandas 日期时间?
-
您是否希望加入一年中同一周的行,或者在“时间戳”列中的日期始终作为参考,因为它们定义了周的结束点?