2017-01-27 10 views
0

データフレームには、その他、2つの列、date1、およびdate2があります。date2はdate2がない場合はnull、逆の場合はnullです。データフレーム内で2つの列を結合する

"date"という名前の列を作成したいとします。

私はこれでした:その後

def setDate(s1, s2): 
    if not isinstance(s1, str): 
     return s2 
    else: 
     return s1 

を、私のような何かをしたい:

data["DATE"] = data[["DATE1", "DATE2"]].apply(lambda x,y : setDate(x,y)) 

を私は得続ける:

TypeError: ("<lambda>() missing 1 required positional argument: 'y'", 'occurred at index DATE1') 

がどのように私は上の適用を使用します私が欲しいことを行うためのデータフレーム?

+0

何のエラーですか?私たちはあなたの心の中で読むことができません。常に問題のFULLエラーメッセージ(トレースバック)を入れてください。 – furas

+0

'lambda x:print(x)'を試してください。おそらく両方の要素を1つのタプル/リストとして送ります – furas

答えて

2

試してみてください。

data['DATE'] = pd.to_datetime(data.DATE1.fillna(data.DATE2)) 

またはあなたがdtypesに道を維持したい場合、彼らは

data['DATE'] = data.DATE1.fillna(data.DATE2) 
関連する問題