2017-01-29 1 views
3

Ich versuche, Jahr/Datum/Monat Informationen aus der Spalte "Datum" in Pandas Dataframe zu extrahieren. Hier ist mein Beispielcode:Wie extrahiere ich das Datum/Jahr/Monat aus Pandas Dataframe?

from datetime import datetime 
def date_split(calendar): 
    for row in calendar: 
    new_calendar={} 
    listdate=datetime.strptime(row['date'],'%Y-%M-%D') 

Ich habe nicht den vollständigen Code abgeschlossen, aber wenn ich diesen Teil Probelauf ich erhalte immer Fehler wie folgt aus:

----> 7   listdate=datetime.strptime(row['date'],'%Y-%M-%D') 
TypeError: string indices must be integers 

Wer noch keine Ahnung hat?

Btw, ist dies die Datenrahmen Ich benutze (calendar_data):

enter image description here

+0

Validate was 'row' und' row [ 'date'] 'sind. –

Antwort

5

Es Sie to_datetime brauchen scheint:

print (df['date'].dtype) 
object 

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

print (df['date'].dtype) 
datetime64[ns] 

Wenn year extrahieren müssen, month und day neue Spalten:

df['year'] = df['date'].dt.year 
df['month'] = df['date'].dt.month 
df['day'] = df['date'].dt.day 

Wenn Bedarf list von date s:

listdate = df['date'].dt.date.tolist() 
print (listdate) 

[datetime.date(2017, 9, 5), 
datetime.date(2017, 9, 4), 
datetime.date(2017, 9, 3), 
datetime.date(2017, 9, 2), 
datetime.date(2017, 9, 1)] 
+0

Ihre Frage ist ein wenig unklar. Was ist die gewünschte Ausgabe? – jezrael