2017-01-10 8 views
2

カーテンコンディショニングの下に2つのDFSをマージしようとしています。コンディショニングdatetime64に基づいてデータフレームをマージする

DF 1: enter image description here

DF2: enter image description here

のが今日に言ってみましょうが、私は何をしようとしている、2015年1月12日で、以前の10よりfirst_activity日付を持つすべてclienthostidのためであります enter image description here

私は最初の2 DFをマージすることにより、そうしようとした:

でDF2があれば、ここでの例では、私は残されているはずだので、今日の前の日は、DF2から除外されます
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によく似ているわけではありません。(これはすべて私が推測するとおりです:)) しかし、私はこれを実装する課題を持っています。もし愚かな質問があれば。

答えて

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)] 
関連する問題