【问题标题】:How can I control the hourly GROUPBY setting in Pandas?如何控制 Pandas 中的每小时 GROUPBY 设置?
【发布时间】:2020-05-06 01:47:24
【问题描述】:

我有以下数据集:

time                    value
2019-01-01 8:00:00       10
2019-01-01 8:30:00       20
2019-01-01 9:00:00       30
2019-01-01 9:30:00       100
2019-01-01 10:00:00      400

通过使用pd.groupby(pd.Grouper(key = 'time', freq = '1h')).sum().reset_index()。它返回:

time                   value
2019-01-01 8:00:00      30
2019-01-01 9:00:00      130
2019-01-01 10:00:00     400

它基于任何相关的 Hour 值来进行组聚合。但是如何控制分组时间设置?因为我想让任何>8 to <= 9 成为9 组。例如:

time                   value
2019-01-01 8:00:00      10
2019-01-01 9:00:00      50
2019-01-01 10:00:00     500

【问题讨论】:

    标签: python pandas datetime group-by


    【解决方案1】:

    IIUCceil

    Yourdf=df.groupby(df.index.ceil('H')).sum()
                         value
    time                      
    2019-01-01 08:00:00     10
    2019-01-01 09:00:00     50
    2019-01-01 10:00:00    500
    

    resample

    df.resample('H',closed='right').sum()
                         value
    time                      
    2019-01-01 07:00:00     10
    2019-01-01 08:00:00     50
    2019-01-01 09:00:00    500
    

    【讨论】:

      【解决方案2】:

      使用closed='right',即

      pd.Grouper(key = 'time', freq = '1h', closed='right')
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-08
        • 2019-06-12
        • 2019-12-27
        • 1970-01-01
        • 2022-08-14
        • 1970-01-01
        • 1970-01-01
        • 2013-06-23
        相关资源
        最近更新 更多