【问题标题】:Pandas Groupby Grouper, how do I groupby dates that don't exist for every group?Pandas Groupby Grouper,我如何对每个组都不存在的日期进行分组?
【发布时间】:2018-10-12 13:57:34
【问题描述】:

试图在 pandas 中绘制每个人 2 年的历史。

问题在于,并不是每个人都拥有 2 年的数据,通常要少得多。

在所有人所有交易的数据集中,我正在对日期进行 groupby,但如果申请人没有交易历史记录,则 pd.Grouper 不会执行 groupby(grouperObj).count()。

因此,A 人的交易历史记录是 2017 年 10 月 1 日到 2018 年 10 月 1 日,而 B 人的交易历史记录是从 2016 年 10 月 1 日到 2018 年 8 月 1 日。我正在尝试为所有人绘制从 2015 年 1 月 1 日到 2018 年 10 月 1 日的图。

我怎样才能对此进行标准化?

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以将日期转换为类别数据类型

    数据输入

    df=pd.DataFrame({'person':['A','B'],'date':['2018-09-23','2017-10-02']})
    
    df.date=pd.to_datetime(df.date)
    

    解决办法

    df.date=pd.Categorical(df.date,categories=pd.date_range(start='10/1/2017',end='10/1/2018',freq='D'))
    target=pd.crosstab(df.person,df.date).stack()
    

    【讨论】:

      猜你喜欢
      • 2017-03-18
      • 2016-07-23
      • 2013-12-06
      • 2013-11-25
      • 1970-01-01
      • 2021-12-01
      • 2021-07-28
      相关资源
      最近更新 更多