2015-11-02 48 views
22

我目前有一個大熊貓Series與dtype Timestamp,我想按日期分組(並在每個組中有不同時間的許多行)。如何通過pandas中的值分組系列?

這樣做,這將是類似的東西,以

grouped = s.groupby(lambda x: x.date()) 

然而看似顯而易見的方法,大熊貓groupby組系列通過其索引。我怎樣才能讓它按價值分組?

+1

IIUC不'分組= s.groupby(s.dt.date)'工作?你試圖實現什麼 – EdChum

+0

http://stackoverflow.com/questions/17929426/groupby-for-pandas-series-not-working – luca

回答

3

您應該將其轉換爲DataFrame,然後添加一個爲date()的列。您可以使用日期列在DataFrame上進行groupby。

df = pandas.DataFrame(s, columns=["datetime"]) 
df["date"] = df["datetime"].apply(lambda x: x.date()) 
df.groupby("date") 

然後「日期」成爲您的索引。你必須這樣做,因爲最終的分組對象需要一個索引,所以你可以做像select a group這樣的事情。

29

我用這個由它的值grouby一個系列:

grouped = s.groupby(s) 

或者:

grouped = s.groupby(lambda x: s[x]) 
+0

這麼簡單...謝謝:) –

0

有三種方法:

數據框:pd.groupby(['column']).size()

系列:sel.groupby(sel).size()

系列到數據幀:

pd.DataFrame(sel, columns=['column']).groupby(['column']).size()