首页 文章

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

提问于
浏览
34

我目前有一个pandas Series 与dtype Timestamp ,我想按日期对它进行分组(并且在每个组中有许多行具有不同的时间) .

这种看似明显的方式与此类似

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

但是,大熊猫的 groupby 系列按其索引分组 . 我怎样才能使它按值分组?

4 回答

  • 47
    grouped = s.groupby(s)
    

    要么:

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

    您应该将其转换为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之类的事情 .

  • 3

    三种方法:

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

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

    系列到DataFrame:

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

  • 3

    对于其他任何想要内联而不抛出lambda的人(这往往会破坏性能):

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

相关问题