2015-11-02 9 views
22

私は現在、dtype TimestampのパンダSeriesを持っています。これを日付でグループ化したい(そして、各グループに異なる時間を持つ多くの行があります)。pandasの値でSeriesをグループ化するには?

これを行う一見明白な方法は、そのインデックスによってしかし

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()列を追加する必要があります。 dateFolderを使用してDataFrameでgroupbyを実行できます。

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

"date"はインデックスになります。 select a groupのようなことができるように、最後にグループ化されたオブジェクトにインデックスが必要なので、この方法で行う必要があります。

29

私はその値によってシリーズをgroubyためにこれを使用する:

grouped = s.groupby(s) 

または:

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

とてもシンプルです...ありがとう:) –

0

三つの方法:

DATAFRAME:pd.groupby(['column']).size()

シリーズ:sel.groupby(sel).size()

データフレームに10

シリーズ:

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