【问题标题】:How to append a new dataset to existing dataset based on index timeseries condition in Python如何根据 Python 中的索引时间序列条件将新数据集附加到现有数据集
【发布时间】:2022-01-17 09:24:49
【问题描述】:

我对 python 真的很陌生。请任何人都可以帮助我解决如何根据索引时间序列条件将新数据集附加到现有数据集的问题。 我需要根据时间将 df2 中的每一行添加到 df1,公差

这是我拥有的数据示例

df1

Time A
01/9/2021 06:50 1
01/9/2021 06:55 2
01/9/2021 07:00 3
01/9/2021 07:05 6
01/9/2021 07:10 3
01/9/2021 07:15 2
01/9/2021 07:20 1
01/9/2021 07:25 2

df2

Time B
01/9/2021 06:51 0.6
01/9/2021 06:55 0.2
01/9/2021 07:12 0.3
01/9/2021 07:16 0.6

预期结果 它会将 df2 中匹配时间与容差(比如说 4 分钟)的每一行添加到 df1 的行中。

df3

Time A B
01/9/2021 06:50 1 0.6
01/9/2021 06:55 2 0.2
01/9/2021 07:00 3 NAN
01/9/2021 07:05 6 NAN
01/9/2021 07:10 3 0.3
01/9/2021 07:15 2 0.6
01/9/2021 07:20 1 NAN
01/9/2021 07:25 2 NAN

非常感谢您的帮助。谢谢你

【问题讨论】:

    标签: python pandas merge time-series append


    【解决方案1】:

    使用pandas.to_datetimepd.Series.dt.round 的一种方式:

    df["Time"] = pd.to_datetime(df["Time"])
    df2["Time"] = pd.to_datetime(df2["Time"]).dt.round("5min")
    
    new_df = df.merge(df2, on="Time", how="left")
    print(new_df)
    

    输出:

                     Time  A    B
    0 2021-01-09 06:50:00  1  0.6
    1 2021-01-09 06:55:00  2  0.2
    2 2021-01-09 07:00:00  3  NaN
    3 2021-01-09 07:05:00  6  NaN
    4 2021-01-09 07:10:00  3  0.3
    5 2021-01-09 07:15:00  2  0.6
    6 2021-01-09 07:20:00  1  NaN
    7 2021-01-09 07:25:00  2  NaN
    

    【讨论】:

      猜你喜欢
      • 2014-09-08
      • 2018-06-06
      • 1970-01-01
      • 2020-05-05
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 2016-08-29
      • 2022-12-02
      相关资源
      最近更新 更多