具有插值数据逻辑的Pandas Merge_Order

时间:2018-08-03 14:44:51

标签: python pandas merge time-series

我有两个熊猫数据框。我想将df1和df2这两个pandaframe合并为一个,并且我使用了以下行

df1 = pd.merge_ordered(df1, df2, on='Time_Stamp')

但是最重要的是,我想填写VWAP,以便在丢失时使用(bid + ask)/ 2来填写值。

有办法吗?

亲切的问候

df1 =

Time_Stamp bid ask
07:00:10   100 105
07:00:20   102 107
07:00:30   101 106
07:00:40   106 111

df2 =

Time_Stamp VWAP
07:00:10   103
07:00:20   ---
07:00:30   104
07:00:40   ---

2 个答案:

答案 0 :(得分:1)

如果方程式代表所有行,则可以为所有这些变量计算VWAP

df1 = pd.merge_ordered(df1, df2, on='Time_Stamp')
df1['VWAP'] = (df1['bid'] + df1['ask']) / 2

这将用结果重新填充VWAP列,或者如果您只想替换那些缺失的内容,则

df1.loc[df1['VWAP'].isnull(), 'VWAP'] = (df1['bid'] + df1['ask']) / 2

答案 1 :(得分:0)

将数据框合并到变量df12后,您可以执行以下操作:

df12.loc[df12.VWAP.isnull(), 'VWAP'] = (df12.bid + df12.ask) / 2

输出:

    Time_Stamp  bid ask VWAP
0   07:00:10    100 105 103.0
1   07:00:20    102 107 104.5
2   07:00:30    101 106 104.0
3   07:00:40    106 111 108.5