2016-08-10 9 views
0

Ich habe ein Pandas DataFrame, in dem ich eine zusätzliche Spalte erstellen möchte, die nur das Jahr enthält, das ich aus einer Spalte im YYYYMMDD-Format extrahiere. Bei der Suche im Forum habe ich den Befehl to_datetime gefunden, aber für meinen Fall hat es nicht funktioniert.Jahr aus der Spalte YYYYMMDD in Pandas DataFrame extrahieren

versuchte ich folgendes:

df = pd.DataFrame({'name' : ['A','B'], 
        'date' :[20130102,20140511]}) 

df['date'] = pd.to_datetime(df['date']) 
df['year'] = df['date'].dt.year 

, was ich als Ausgabe zu erhalten ist:

      date name year 
0 1970-01-01 00:00:00.020130102 A 1970 
1 1970-01-01 00:00:00.020140511 B 1970 

aber ich würde bekommen:

 date name year 
0 20130102 A 2013 
1 20140511 B 2014 

Ich versuchte es auch ohne to_datetime Da mein Datum nicht genau im JJJJ-MM-TT Format liegt, könnte es aber auch nicht so kommen. Ich hoffe, Sie können mir mit diesem "Newbie" -Problem helfen, vielen Dank!

+0

Sie müssen die 'format' zu' to_datetime' weitergeben müssen: 'df [ 'date'] = pd.to_datetime (df [ 'date'], format = '% Y% m% d)' – EdChum

+0

Toll, vielen Dank! (am Ende Ihres Formats fehlt ein ') – Don

Antwort

0

Dies ist, was Sie benötigen, um das Format anzugeben, in dem Sie das Datum angeben.

df['date'] = pd.to_datetime(df['date'],format='%Y%m%d') 
Verwandte Themen