基于条件合并DataFrames datetime64
问题描述:
我想在日期窗帘条件下合并2个Dfs。基于条件合并DataFrames datetime64
比方说,今天是2015-01-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值或使用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)]