2016-09-30 9 views
0

私は、Date1とDate2の列を持つSFrameを持っています。Sframesで.apply()を使用して各行の複数の列を操作する

私は.apply()を使ってDate1とDate2の間の日付を見つけようとしていますが、他の引数の使い方を知ることはできません。

理想的にはあなたが直接、ちょうどframe['Date2']からframe['Date1']を減算することによって列Date2の日付とDate1でそれらの間の差を取ることができ

frame['new_col'] = frame['Date1'].apply(lambda x: datediff(x,frame('Date2'))) 
+0

だから、日にちが違いますか? – sb0709

+0

はい。しかし、反復処理を避け、代わりに.apply()関数を使用しようとしています。 – javsckc

+0

'frame ['Date1'] - フレーム['Date2']'は動作しませんか? – Abdou

答えて

0

のようなもの。

from sframe import SFrame 
from datetime import datetime, timedelta 

mydict = {'Date1':[datetime.now(), datetime.now()+timedelta(2)], 
      'Date2':[datetime.now()+timedelta(10), datetime.now()+timedelta(17)]} 
frame = SFrame(mydict) 
frame['new_col'] = (frame['Date2'] - frame['Date1']).apply(lambda x: x//(60*60*24)) 

出力:

つまり、何らかの理由で、あなたは簡単な算術演算と日の 数に変換することができます(唯一のpythonのdatetimeオブジェクトでテスト済み)2つの日付間の秒数を返します
+----------------------------+----------------------------+---------+ 
|   Date1   |   Date2   | new_col | 
+----------------------------+----------------------------+---------+ 
| 2016-10-02 21:12:14.712556 | 2016-10-12 21:12:14.712574 | 10.0 | 
| 2016-10-04 21:12:14.712567 | 2016-10-19 21:12:14.712576 | 15.0 | 
+----------------------------+----------------------------+---------+ 
+0

ありがとうございます!私はそれが愚かに聞こえるが、それは私に起こらなかったことを知っている... – javsckc

関連する問題