如何按熊猫中的值对系列进行分组?

时间:2015-11-02 17:43:23

标签: python pandas group-by series

我目前有一个带有dtype Series的panda Timestamp,我希望按日期对其进行分组(并且每组中有许多行具有不同的时间)。

看似显而易见的做法与

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

但是,大熊猫groupby按其索引对系列进行分组。我怎样才能让它按值分组呢?

5 个答案:

答案 0 :(得分:63)

grouped = s.groupby(s)

或者:

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

答案 1 :(得分:5)

对于其他任何想要内联而不会抛出lambda的人(这会导致性能下降):

s.to_frame(0).groupby(0)[0]

答案 2 :(得分:3)

您应该将其转换为DataFrame,然后添加一个date()列。您可以使用日期列对DataFrame进行groupby。

Parcel

然后“日期”成为您的索引。你必须这样做,因为最终的分组对象需要一个索引,所以你可以做select a group之类的事情。

答案 3 :(得分:3)

三种方法:

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

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

系列到DataFrame:

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

答案 4 :(得分:0)

要添加另一个建议,我经常使用以下内容,因为它使用了简单的逻辑:

pd.Series(index=s.values).groupby(level=0)