我目前有一个带有dtype Series
的panda Timestamp
,我希望按日期对其进行分组(并且每组中有许多行具有不同的时间)。
看似显而易见的做法与
类似grouped = s.groupby(lambda x: x.date())
但是,大熊猫groupby
按其索引对系列进行分组。我怎样才能让它按值分组呢?
答案 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)