【问题标题】:How to merge two time series dataframes with different end dates and keep the longer end date如何合并具有不同结束日期的两个时间序列数据框并保持较长的结束日期
【发布时间】:2022-11-14 06:17:16
【问题描述】:

我有两个采样频率相同但结束日期不同的时间序列。我想将它们组合成一个并保持总时间范围而不是交叉点。将数据留在交叉点 NaN 之外。

我试过了:

df_to_merge= [df1, df2]
df_merged = reduce(lambda left,right: pd.merge(left,right, on='timestamp'), df_to_merge)

数据:

df1
timestamp          col1
2010-10-10 00:00    10
2010-10-10 00:01    15
...
2010-10-15 00:00    10

df2 
timestamp          col2
2010-10-07 00:00    20
2010-10-10 00:01    25
...
2010-10-18 00:00    20

期望的结果:

timestamp          col1    col2
2010-10-07 00:00    NaN     20
2010-10-07 00:01    NaN     25
...
2010-10-10 00:01    10      30
2010-10-15 00:00    10      40
..
2010-10-18 00:00    NaN     20

【问题讨论】:

    标签: python pandas dataframe time-series


    【解决方案1】:

    您可以执行连接操作:

    df_merged = df1.join(df2,how='right')
    

    通过使用right,您可以确保保留右侧的所有值(更长的df)。

    【讨论】:

      猜你喜欢
      • 2020-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多