2017-12-22 1 views
0

Ich habe ein Dataset, das eine Spalte für Daten enthält. Das Format für diese Spalte lautet dd.mm.yyyy.Verwenden von Pandas zum Sortieren von Daten aus einem Dataset

Ich habe versucht, die empfohlenen Methoden zum Sortieren der Daten zu verwenden, um den Bereich auf "Dezember" und "2014" zu beschränken. Keine der Methoden scheint jedoch ordnungsgemäß zu funktionieren. Ich denke darüber nach, es so zu arrangieren, dass es im Format yyyy.mm.dd. ist. Ich bin mir nicht sicher, wie ich das machen soll. Kann jemand helfen?

Code wie (df['date']>'1-12-2014')&(df['date']<='31-12-2014') scheinen nicht zu funktionieren.

+0

Sind die Werte der Spalte als Datumswerte gespeichert? Sie können dies z. 'df.info()'. Wenn Sie den Code hinzufügen, den Sie zum Generieren des Datenrahmens verwendet haben, ist die Frage leichter zu beantworten. – fuglede

+0

Ich denke, ich brauche Datetime, ich bin neu in Pandas und bin mir nicht sicher, wie man es formatiert. df ['date'] = pd.to_datetime (df ['Datum'], Format = '% d% b% Y:% H:% M:% S.% f') Ich habe diesen Code aus einem anderen Post gefunden, aber Das Format sieht für meine Daten nicht korrekt aus. – yqz09

Antwort

0

Das Problem ist, dass Ihre Daten Zeichenfolgen sind, die Pandas nicht als Daten erkennt. Sie möchten sie zuerst in datetime-Objekte konvertieren. Es gibt ein paar Möglichkeiten, dies zu tun:

df['date'] = df['date'].apply(lambda d: pd.strptime(d, '%d.%m.%Y')) 

oder

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

In beiden Fällen ist der Schlüssel zu einem Format-String verwendet, die Ihre Daten übereinstimmt. Dann können Sie filtern, wie Sie wollen:

from datetime import date 
df[(df['date'] >= date(2014, 12, 1))&(df['date'] <= date(2014, 12, 31))] 
+1

Vielen Dank! Ich bin neu in Pandas und Python, also war diese schnelle Lektion sehr hilfreich. – yqz09

Verwandte Themen