我目前有一个pandas Series 与dtype Timestamp ,我想按日期对它进行分组(并且在每个组中有许多行具有不同的时间) .
Series
Timestamp
这种看似明显的方式与此类似
grouped = s.groupby(lambda x: x.date())
但是,大熊猫的 groupby 系列按其索引分组 . 我怎样才能使它按值分组?
groupby
grouped = s.groupby(s)
要么:
grouped = s.groupby(lambda x: s[x])
您应该将其转换为DataFrame,然后添加一个date()列 . 您可以使用日期列对DataFrame进行groupby .
df = pandas.DataFrame(s, columns=["datetime"]) df["date"] = df["datetime"].apply(lambda x: x.date()) df.groupby("date")
然后"date"成为你的索引 . 你必须这样做,因为最终的分组对象需要一个索引,所以你可以做select a group之类的事情 .
三种方法:
DataFrame: pd.groupby(['column']).size()
pd.groupby(['column']).size()
系列: sel.groupby(sel).size()
sel.groupby(sel).size()
系列到DataFrame:
pd.DataFrame( sel, columns=['column']).groupby(['column']).size()
对于其他任何想要内联而不抛出lambda的人(这往往会破坏性能):
s.to_frame(0).groupby(0)[0]
4 回答
要么:
您应该将其转换为DataFrame,然后添加一个date()列 . 您可以使用日期列对DataFrame进行groupby .
然后"date"成为你的索引 . 你必须这样做,因为最终的分组对象需要一个索引,所以你可以做select a group之类的事情 .
三种方法:
DataFrame:
pd.groupby(['column']).size()
系列:
sel.groupby(sel).size()
系列到DataFrame:
pd.DataFrame( sel, columns=['column']).groupby(['column']).size()
对于其他任何想要内联而不抛出lambda的人(这往往会破坏性能):