2016-04-09 4 views
0

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

Antwort

0

'start_date' Unter der Annahme, ist bereits ein Datetime:

def add_1_year(x): 
    x['End_Date'] = x['Start_Date']+ timedelta(days=365) 
    return x 

df.apply(add_1_year,axis=1) 

Sollte es

+0

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

+0

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

+0

das wäre es. Danke, dass du zurück zu mir gekommen bist – da4l

Verwandte Themen