【问题标题】:groupby week - pandas dataframegroupby week - 熊猫数据框
【发布时间】:2021-04-30 15:04:35
【问题描述】:

我想从最后一个输入日开始按周对 pandas 数据框进行分组,并计算每列/每周的总和。

(1 周 : 周一 -> 周日,如果最后一个条目是周二,则该周仅由周一和周二数据组成,而不是今天 - 7 天)

df:

             a  b  c  d  e
2019-01-01   1  2  5  0  1
...
2020-01-25   2  3  6  1  0
2020-01-26   1  2  3  4  5

预期输出:

       week  a  b  c  d  e 
       104   9  8  8  8  7
       ...
       1     7  8  8  8  9

代码:

df = df.rename_axis('date').reset_index()
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d')
df.groupby(DF.date.dt.strftime('%W')).sum()

问题:不是我想要的周数和每年的第n周分组在同一行

【问题讨论】:

    标签: python pandas dataframe group-by


    【解决方案1】:

    尝试提取iso日历(年-周-日),然后分组:

    s = dt.index.isocalendar()
    
    dt.groupby([s.year, s.week]).sum()
    

    你会得到这样的东西:

                a   b   c   d   e
    year week                    
    2019 1     18  33  31  26  25
         2     36  31  25  28  31
         3     33  22  44  22  29
         4     36  36  35  33  31
         5     27  30  26  31  36
    

    【讨论】:

      猜你喜欢
      • 2016-10-09
      • 2013-12-19
      • 2021-12-06
      • 1970-01-01
      • 2017-05-18
      • 2023-01-12
      • 2018-08-01
      • 2016-09-08
      相关资源
      最近更新 更多