根据条件 datetime64 合并 DataFrames

Merge DataFrames based on conditioning datetime64

我正在尝试在日期的窗帘条件下合并 2 个 Df。

df 1:

df2:

假设今天是 2015 年 1 月 12 日,我要做的是将 first_activity 日期早于今天 10 天的每个 clienthostid 从 df2 中排除,因此在这里的例子如果 df2 我会留下:

我试图通过首先合并 2 df:

temp = pd.merge(df1, df2, on='clienthostid', how='inner')

然后根据条件尝试删除:

temp = temp[temp.First_activity + 10 < today]

我收到了这个错误:

TypeError: cannot operate on a series without a rhs of a series/ndarray of type datetime64[ns] or a timedelta

First_activity 今天是 datetime64...

我对 sql、python 和 pandas 都不熟悉(我猜是总和 :)), 但是我有一个任务要实现这个,如果这个问题很愚蠢,我很抱歉。

我认为你需要转换 to_timedelta int value or use offsets:

today = pd.datetime.today().date() 
temp = temp[temp.First_activity < today - pd.to_timedelta(10, unit='d')]

或者:

temp = temp[temp.First_activity < today - pd.offsets.Day(10)]