2017-01-27 5 views
0

Nehmen wir an, ich habe ein Datenframe, das, amnog andere, zwei Spalten, date1 und date2 hat. Date1 ist null, wenn date2 nicht ist, und umgekehrt.Kombinieren von zwei Spalten in einem Datenframe

Ich möchte eine Spalte mit dem Namen "Datum" erstellen.

Ich habe diese:

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

Dann möchte ich, wie etwas zu tun ist:

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

aber ich bekomme immer wieder:

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

Wie kann ich auf eine Anwendung verwenden Datenrahmen zu tun, was ich will?

+0

welche Fehler? wir können nicht in Gedanken lesen. Immer in Frage stellen FULL Fehlermeldung (Traceback). – furas

+0

versuchen Sie mit 'Lambda x: print (x)' - vielleicht senden beide Elemente als ein Tupel/Liste – furas

Antwort

2

Versuch:

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

oder wenn Sie die dtypes die Art und Weise zu halten, wollen sie sind

data['DATE'] = data.DATE1.fillna(data.DATE2) 
Verwandte Themen