我应该如何使用 pandas 找到商店的平均季度销售额

How should I find mean quarterly sales by store using pandas

我有以下数据框

        Jan  Feb    Mar     Apr     May     Jun     July    Aug     Sep     Oct   Nov   Dec
  store_id                                              
  S_1   8.0  20.0   13.0    21.0    17.0    20.0    24.0    17.0    16.0    9.0   7.0   6.0
  S_10  14.0 23.0   20.0    11.0    12.0    13.0    19.0    6.0     5.0     22.0  17.0  16.0

我想计算每家商店每季度的平均值:

        Q1      Q2      Q3      Q4
  store_id                                              
  S_1   13.67   19.33   15.67   7.33
  S_10  19.0    12.0    10.0    18.33

如何实现?

DatetimeIndex.quarter 将值转换为四分之一并聚合,如果更改列的顺序,它也能正常工作:

#if necessary
df = df.rename(columns={'July':'Jul'})

df = (df.groupby(pd.to_datetime(df.columns, format='%b').quarter, axis=1)
        .mean()
        .add_prefix('Q')
        .round(2))
print(df)
             Q1     Q2    Q3     Q4
store_id                           
S_1       13.67  19.33  19.0   7.33
S_10      19.00  12.00  10.0  18.33

假设您按顺序排列了列,请在 axis=1 上使用 groupby:

import numpy as np
out = df.groupby([np.arange(df.shape[1])//3+1], axis=1).mean().add_prefix('Q')

输出:

                 Q1         Q2    Q3         Q4
store_id                                       
S_1       13.666667  19.333333  19.0   7.333333
S_10      19.000000  12.000000  10.0  18.333333