【问题标题】:Python: Integrate daily list into df with hourly indexPython:将每日列表集成到具有每小时索引的df中
【发布时间】:2022-11-03 17:35:33
【问题描述】:

我每天都有weather 数据:

           rain (mm)
date
01/01/2022   0.0
02/01/2022   0.5
03/01/2022   2.0
...

我还有另一张桌子 (df) 按小时细分

                 value
datetime
01/01/2022 01:00       x
01/01/2022 02:00       x
01/01/2022 03:00       x
...

我想像这样加入他们:

                 value   rain
datetime
01/01/2022 01:00       x    0.0
01/01/2022 02:00       x    0.0
01/01/2022 03:00       x    0.0
...
02/01/2022 01:00       x    0.5
02/01/2022 02:00       x    0.5
02/01/2022 03:00       x    0.5
...
03/01/2022 01:00       x    2.0
03/01/2022 02:00       x    2.0
03/01/2022 03:00       x    2.0
...

(注意:所有日期都是 d%/m%/Y% 格式,所有日期都是各自 df 的索引)

我确定有一个直接的解决方案,但我找不到它...... 提前感谢您的帮助!

【问题讨论】:

    标签: python pandas dataframe datetime


    【解决方案1】:

    假设第一个数据帧名为“天气”,第二个数据帧名为“df”。

    让我们试试下面的代码:

    df['rain']=[weather['rain (mm)'][i] for i in df.index]
    

    【讨论】:

      【解决方案2】:

      您可能想重新采样weather,然后加入df

      weather = weather.resample("H").mean().ffill()
      df_out = weather.join(df)
      

      这将保留weather 的重新采样索引,您可能希望保留df 索引或交集,或所有索引。看看doc 和kwarg how

      输出(默认how="left"):

                           rain (mm) value
      date                                
      2022-01-01 00:00:00        0.0   NaN
      2022-01-01 01:00:00        0.0     x
      2022-01-01 02:00:00        0.0     x
      2022-01-01 03:00:00        0.0     x
      2022-01-01 04:00:00        0.0   NaN
      ...                        ...   ...
      2022-02-28 20:00:00        0.5   NaN
      2022-02-28 21:00:00        0.5   NaN
      2022-02-28 22:00:00        0.5   NaN
      2022-02-28 23:00:00        0.5   NaN
      2022-03-01 00:00:00        2.0   NaN
      

      【讨论】:

        猜你喜欢
        • 2020-10-14
        • 2023-03-20
        • 1970-01-01
        • 1970-01-01
        • 2019-11-01
        • 2020-05-25
        • 2020-05-02
        • 2021-10-02
        • 1970-01-01
        相关资源
        最近更新 更多