【问题标题】:Combining Observations of dataframe hourly每小时结合数据帧的观察
【发布时间】:2021-02-26 09:38:32
【问题描述】:

我有一个类似于以下内容的 pandas 数据框

Date                Measurement  Room
2014-02-03 12:48    0.50         23
2014-02-03 12:53    0.43         23
2014-02-03 12:59    0.21         23
2014-02-03 13:06    0.23         23
2014-02-03 13:13    0.10         23
...

我正在尝试汇总所有测量值按小时。例如,在上面的数据框中,我们会有:

Date              Measurement
2014-02-03 12:00  1.14
2014-02-03 13:00  0.33

我如何在 Python 中完成此操作?

【问题讨论】:

    标签: python python-3.x pandas datetime pandas-groupby


    【解决方案1】:

    您可以在此处使用pd.Grouperfreq='H'。查看List of freq aliases here

    # df['Date'] = pd.to_datetime(df['Date']) If `Date` is not already datetime.
    df.groupby(pd.Grouper(key='Date', freq='H'))[['Measurement']].sum()
    
                         Measurement
    Date                            
    2014-02-03 12:00:00         1.14
    2014-02-03 13:00:00         0.33
    

    df.groupby(pd.Grouper(key='Date', freq='H'))['Measurement'].sum().to_frame()
    

    【讨论】:

    • 感谢您的有用回复!我该如何使用它,所以它也不会对其他列求和。例如,我在上面的帖子中编辑了原始数据框,以包含观察的房间号。我不想总结房间号。
    【解决方案2】:

    你可以使用函数resample:

    df.resample('H')['Measurement'].sum()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-13
      • 2020-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多