2017-06-10 2 views
1

Ich habe ein Datenframe mit Spalten: customerId, Menge, Datum der Datumsbereich dieses Datenrahmens ist: Datum: 1/1/2016 9 9/2017 Ich versuche, die Spitze zu finden 10.000 Kunden werden nach dem Gesamtbetrag bestimmt, den sie im Jahr 2016 ausgegeben haben; Ich wollte die Menge Spalte sortieren in absteigender Reihenfolge und dann die Datumsspalte parsen von nur 2016 mitPandas Datenframe Top-Benutzer nach Menge innerhalb 2016

mask = (df['date'] >= '1/1/2016') & (df['date'] <'1/1/2017') 

es hat eine intelligentere Weg, dies zu tun, ich bin neu in Codierung so würde jede Hilfe geschätzt Vielen Dank!

Antwort

1

Vielleicht können Sie versuchen, die Spalte zu Datetime-Konvertierung von:

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

#then filter by year 
mask = df['date'].apply(lambda x: x.year == 2016) 

@ A-Za-z Antwort ist prägnanter, aber in Falls die Spalte nicht bereits im Datetime-Typ ist, können Sie sie mit pd.to_datetime konvertieren.

1

Sie können .dt-Accessor verwenden, da die Datumsspalte pandas datetime ist. Andernfalls wandeln Sie es in Datetime zuerst um

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

Sollte Ihnen die erforderlichen Zeilen geben. Wenn Sie den Beispieldatensatz veröffentlichen können, wäre es einfacher, es zu testen

Verwandte Themen