Ich versuche, eine Möglichkeit zum Ausfüllen einer leeren Spalte mit einer benutzerdefinierten Funktion herauszufinden. Ich habe eine Startdatumspalte und eine Enddatumspalte. Das Enddatum ist derzeit leer. Die Daten wurden als csv in einen pandas-Datenrahmen namens df eingelesen.Python Pandas: Verwenden einer benutzerdefinierten Funktion zum Ausfüllen einer leeren Variablen
Eigentlich möchte ich eine benutzerdefinierte Funktion erstellen, die das Datum in der Spalte Startdatum annimmt und 1 Jahr hinzufügt und in die Enddatumsspalte schreibt. Etwas auf die Wirkung dieses:
Anfang Daten-Rahmen:
Start_Date End_Date
12/4/2013 NaN
07/16/2012 NaN
03/05/1999 NaN
Ausgang mit einem Jahr hinzugefügt:
Start_Date End_Date
12/04/2013 12/03/2014
07/16/2012 07/15/2013
03/05/1999 03/04/2000
Ich weiß, dies mit dem folgenden Code durchgeführt werden kann:
from datetime import timedelta
df['END_DATE'] = df['START_DATE'] + timedelta(days=365)
Aber ich würde wirklich gerne eine benutzerdefinierte Funktion verwenden (wenn es möglich ist) in Richtung:
def add_1_year(x):
ed = [x['START_DATE']+ timedelta(days=365)
return pd.Series(ed)
df['END_DATE'].apply(add_1_year)
df[['START_DATE','END_DATE']]
Ich hoffe, das macht so viel Sinn, aber alle Vorschläge werden sehr geschätzt.
Dank
Dank für die Eingabe tun. Ich habe das versucht, aber die folgende Fehlermeldung erhalten: KeyError: ('Start_Date', bei Index 0 'aufgetreten) irgendwelche Ideen, was würde dies verursachen? – da4l
Sie haben die Spalte anders benannt. Ich habe Ihren Beispieldatenrahmen verwendet, der die Spalte "Start_Date" enthält. Ihr Beispiel verwendet 'START_DATE'. Bei Spaltennamen wird zwischen Groß- und Kleinschreibung unterschieden. – vmg
das wäre es. Danke, dass du zurück zu mir gekommen bist – da4l