如果日期不匹配,如何在熊猫中加入时间序列?

Cor*_*one 4 python join time-series pandas

我在熊猫中有两个时间序列/数据帧,我需要从一个索引中获取索引,并使用结转的最后一个值从另一个中获取匹配值。

例:

从框架A和B开始,我要制作C,该日期与B的日期相同,但有一个额外的列显示该日期之前A的最后观察值。

>>> A
        Date   Y
0 2010-01-01   6
1 2010-09-15   9
2 2011-05-01  12
>>> B
        Date  X
0 2009-02-01  1
1 2010-02-01  2
2 2010-03-01  3
3 2010-12-21  4
4 2011-08-01  5
>>> C
        Date  X   Y
0 2009-02-01  1 NaN
1 2010-02-01  2   6
2 2010-03-01  3   6
3 2010-12-21  4   9
4 2011-08-01  5  12
Run Code Online (Sandbox Code Playgroud)

Jia*_* Li 5

您可以使用.asof功能。注意.asof仅适用于pd.Series带有pd.DatetimeIndex索引的对象。

# must use Date as index
df_A = df_A.set_index('Date')
df_B = df_B.set_index('Date')

# asof
df_B['Y'] = df_A['Y'].asof(df_B.index)

            X   Y
Date             
2009-02-01  1 NaN
2010-02-01  2   6
2010-03-01  3   6
2010-12-21  4   9
2011-08-01  5  12
Run Code Online (Sandbox Code Playgroud)