如何根据Pandas的价值观对一个系列进行分组?

2024-04-26 12:21:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在有一个带有dtypeTimestamp的pandasSeries,我想按日期对它进行分组(并且在每个组中有许多具有不同时间的行)。

看起来很明显的做法是

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

然而,熊猫的groupby群是按其指数排列的。我怎样才能让它按值分组呢?


Tags: lambdadate时间指数groupbygroupedpandasseriesdtypetimestamp
3条回答

您应该将其转换为数据帧,然后添加一列,即date()。您可以在带有日期列的数据框上执行groupby。

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

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

grouped = s.groupby(s)

或:

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

对于其他任何想在不插入lambda的情况下内联执行此操作的人(这会降低性能):

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

相关问题 更多 >