2017-06-10 26 views
1

我有一個數據框與列:customerId,金額,日期這個數據框的日期範圍是:date:1/1/2016 9/9/2017我想找到頂部10,000個客戶將由他們在2016年花費的總金額決定;我要量列按降序排序,然後使用熊貓數據框頂級用戶數量在2016年內的數量

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

必須有這樣做一個聰明的方法解析僅通過2016年日期欄,我是新來的編碼,因此任何幫助將不勝感激謝謝!

回答

1

也許你可以嘗試通過列轉換爲datetime:

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

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

@ A-雜誌-Z的回答更加簡潔,但在如果該列已不在日期時間類型中,則可以使用pd.to_datetime進行轉換。

1

假設date列是pandas datetime,那麼您可以使用.dt accessor。否則首先將其轉換爲datetime

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

應該給你所需的行。如果你可以張貼樣本數據集,它會更容易進行測試