根据条件datetime64合并DataFrame

时间:2017-01-10 09:13:50

标签: python pandas filter merge date-arithmetic

我正在尝试在日期的窗帘调节下合并2个Dfs。

df 1: enter image description here

DF2: enter image description here

让我们说到今天是2015-01-12,我想要做的是每个first_activity日期早于10天的客户主体被排除在df2之外,所以在这里的示例我会是如果df2与: enter image description here

我尝试首先合并2 df:

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

然后根据条件尝试删除:

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

我收到了这个错误:

  

TypeError:无法在没有类型为datetime64 [ns]或timedelta

的系列/ ndarray的rhs的系列上运行

First_activity,今天是datetime64 ......

我对sql,python和pandas并不熟悉(我估计总和:)), 但是如果这个问题愚蠢的话,我有一个实现这个的任务,很抱歉。

1 个答案:

答案 0 :(得分:1)

我认为您需要转换to_timedelta int值或使用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)]