【问题标题】:Resampling dataframe by hours and date按小时和日期重新采样数据帧
【发布时间】:2017-12-12 13:46:54
【问题描述】:

我有一个这样的数据框:

                 Maximum Demand (KVA)  Consumption (KVAh)  Power Factor
Timestamp                                                                     
2017-04-01 01:00:00                 127.0               261.0          0.81   
2017-04-01 02:00:00                 133.0               268.0          0.79   
2017-04-01 03:00:00                 119.0               273.0          0.92   
2017-04-01 04:00:00                 118.0               263.0          0.78   
2017-04-01 05:00:00                 135.0               271.0          0.86   
2017-04-01 06:00:00                 130.0               257.0          0.82   
2017-04-01 23:00:00                 120.0               261.0          0.78   
2017-04-02 00:00:00                 121.0               272.0          0.83   
2017-04-02 01:00:00                 126.0               263.0          0.90   
2017-04-02 02:00:00                 132.0               266.0          0.83   
2017-04-02 03:00:00                 132.0               275.0          0.90   
2017-04-02 04:00:00                 122.0               259.0          0.77   
2017-04-02 05:00:00                 119.0               271.0          0.78   
2017-04-02 06:00:00                 122.0               259.0          0.81   
2017-04-02 23:00:00                 115.0               264.0          0.87   
2017-04-03 00:00:00                 129.0               273.0          0.86 

我想在另一个日期的 01:00 - 0:00 之前重新采样数据:

我试过了:

off_sum = offpeak_hist.resample('h', base=8).sum().dropna()

但是没有达到预期的输出。请帮我解决这个问题。

【问题讨论】:

    标签: python pandas dataframe timestamp resampling


    【解决方案1】:

    我认为你需要先 shift 一个小时,然后 resample days

    print (offpeak_hist.shift(-1, freq='H'))
                         Maximum Demand (KVA)  Consumption (KVAh)  Power Factor
    Timestamp                                                                  
    2017-04-01 00:00:00                 127.0               261.0          0.81
    2017-04-01 01:00:00                 133.0               268.0          0.79
    2017-04-01 02:00:00                 119.0               273.0          0.92
    2017-04-01 03:00:00                 118.0               263.0          0.78
    2017-04-01 04:00:00                 135.0               271.0          0.86
    2017-04-01 05:00:00                 130.0               257.0          0.82
    2017-04-01 22:00:00                 120.0               261.0          0.78
    2017-04-01 23:00:00                 121.0               272.0          0.83
    2017-04-02 00:00:00                 126.0               263.0          0.90
    2017-04-02 01:00:00                 132.0               266.0          0.83
    2017-04-02 02:00:00                 132.0               275.0          0.90
    2017-04-02 03:00:00                 122.0               259.0          0.77
    2017-04-02 04:00:00                 119.0               271.0          0.78
    2017-04-02 05:00:00                 122.0               259.0          0.81
    2017-04-02 22:00:00                 115.0               264.0          0.87
    2017-04-02 23:00:00                 129.0               273.0          0.86
    
    
    df = offpeak_hist.shift(-1, freq='H').resample('D').sum().dropna()
    print (df)
                Maximum Demand (KVA)  Consumption (KVAh)  Power Factor
    Timestamp                                                         
    2017-04-01                1003.0              2126.0          6.59
    2017-04-02                 997.0              2130.0          6.72
    

    【讨论】:

      【解决方案2】:

      如果我理解正确,你想这样做:

      off_sum = df.groupby(df.index.time).sum()
      

      实现这一目标:

                Maximum Demand (KVA)  Consumption (KVAh)  Power Factor
      00:00:00                 250.0               545.0          1.69
      01:00:00                 253.0               524.0          1.71
      02:00:00                 265.0               534.0          1.62
      03:00:00                 251.0               548.0          1.82
      04:00:00                 240.0               522.0          1.55
      05:00:00                 254.0               542.0          1.64
      06:00:00                 252.0               516.0          1.63
      23:00:00                 235.0               525.0          1.65
      

      如果没有,您需要使用所需的输出更新您的问题。

      【讨论】:

        猜你喜欢
        • 2018-08-26
        • 1970-01-01
        • 2020-07-23
        • 1970-01-01
        • 2017-09-19
        • 2013-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多