【问题标题】:How to group by Month as Abbreviated month name如何按月份分组为缩写月份名称
【发布时间】:2022-01-20 19:42:44
【问题描述】:

我有以下具有几年每小时数据的时间序列:

    local time         ghi mean
0       2013-01-01 00:00:00 0.0
1       2013-01-01 01:00:00 0.0
2       2013-01-01 02:00:00 0.0
3       2013-01-01 03:00:00 0.0
4       2013-01-01 04:00:00 0.0
..         ...          ...
8754    2016-12-31 18:00:00 427.5
8755    2016-12-31 19:00:00 194.9
8756    2016-12-31 20:00:00 116.5
8757    2016-12-31 21:00:00 237.6
8758    2016-12-31 22:00:00 113.8
8759    2016-12-31 23:00:00 0.0

我想计算每个月的平均值。所需的输出类似于:

    local time     ghi mean
0     January    769.187097
1     February   756.828125
..         ...          ...
11    November   491.085618
12    December   859.930933

我已经试过了:

df.groupby(pd.PeriodIndex(df['local time'], freq="M"))['ghi mean'].mean().reset_index()

但是得到了:

    local time     ghi mean
0      2009-01   769.187097
1      2009-02   756.828125
2      2009-03   747.142339
3      2009-04   661.948194
4      2009-05   491.085618
..         ...          ...
127    2019-08   859.930933
128    2019-09   852.150131
129    2019-10  1239.419635
130    2019-11  1072.209155
131    2019-12  1255.293607

【问题讨论】:

    标签: python pandas dataframe datetime


    【解决方案1】:

    按月份名称分组:

    out = df.groupby(df['local time'].dt.strftime('%B'), sort=False).mean().reset_index()
    print(out)
    
    # Output:
      local time    ghi mean
    0    January    0.000000
    1   December  181.716667
    

    【讨论】:

    • 好的,谢谢!!!!
    猜你喜欢
    • 2018-08-26
    • 2014-01-30
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-19
    相关资源
    最近更新 更多