python pandas concatening 2 timeseries dataframes

时间:2016-12-26 08:07:50

标签: python pandas

我有以下2个数据帧:
DF1:

               datetime   actual    forecast    previous
0   2015-01-09 13:30:00     -0.2         0.2         0.2
1   2015-02-06 13:30:00      0.5         0.3        -0.2
2   2015-03-06 13:30:00      0.1         0.2         0.5
3   2015-04-03 12:30:00      0.3         0.2         0.1
4   2015-05-08 12:30:00      0.1         0.2         0.2

和df2:

            datetime    Actual  Surv(M) Prior
0   2015-01-09 08:30    -0.2%   0.2%    0.4%
1   2015-02-06 08:30    0.5%    0.3%    -0.2%
2   2015-03-06 08:30    0.1%    0.2%    0.5%
3   2015-04-03 08:30    0.3%    0.2%    0.1%
4   2015-05-08 08:30    0.1%    0.2%    0.3%

我正在尝试连接它们,以便它们出现在根据时间戳排序的数据框中。

这样做我正在做:

df1.set_index('datetime', drop=False, inplace=True)
df2.set_index('datetime', drop=False, inplace=True)
pd.concat([df1, df2], axis=1)

但这是结果:

                                 datetime   actual  forecast    previous     datetime   Actual  Surv(M)  Prior
datetime                                
2015-01-09 08:30:00                   NaT      NaN       NaN         NaN          NaN   NaN         NaN    NaN
2015-01-09 13:30:00   2015-01-09 13:30:00     -0.2       0.2         0.2          NaN   NaN         NaN    NaN
2015-02-06 08:30:00                   NaT      NaN       NaN         NaN          NaN   NaN         NaN    NaN
2015-02-06 13:30:00   2015-02-06 13:30:00      0.5       0.3        -0.2          NaN   NaN         NaN    NaN
2015-03-06 08:30:00                   NaT      NaN       NaN         NaN          NaN   NaN         NaN    NaN
2015-03-06 13:30:00   2015-03-06 13:30:00      0.1       0.2         0.5          NaN   NaN         NaN    NaN
2015-04-03 08:30:00                   NaT      NaN       NaN         NaN          NaN   NaN         NaN    NaN
2015-04-03 12:30:00   2015-04-03 12:30:00      0.3       0.2         0.1          NaN   NaN         NaN    NaN
2015-05-08 08:30:00                   NaT      NaN       NaN         NaN          NaN   NaN         NaN    NaN
2015-05-08 12:30:00   2015-05-08 12:30:00      0.1       0.2         0.2          NaN   NaN         NaN    NaN

缺少来自df2的数据。似乎正确分配的行是根据来自df1的数据中的rythm判断的,但它没有出现。

有任何建议让df2数据正确存在吗?

编辑:所需的结果:

                                     datetime   actual  forecast    previous     datetime   Actual  Surv(M)  Prior
    datetime                                
2015-01-09 08:30:00                   NaT      NaN       NaN         NaN              2015-01-09 08:30    -0.2%   0.2%    0.4%
    2015-01-09 13:30:00   2015-01-09 13:30:00     -0.2       0.2         0.2          NaN   NaN         NaN    NaN
2015-02-06 08:30:00                   NaT      NaN       NaN         NaN          2015-02-06 08:30    0.5%    0.3%    -0.2%
    2015-02-06 13:30:00   2015-02-06 13:30:00      0.5       0.3        -0.2          NaN   NaN         NaN    NaN
2015-03-06 08:30:00                   NaT      NaN       NaN         NaN          2015-03-06 08:30    0.1%    0.2%    0.5%
    2015-03-06 13:30:00   2015-03-06 13:30:00      0.1       0.2         0.5          NaN   NaN         NaN    NaN
2015-04-03 08:30:00                   NaT      NaN       NaN         NaN          2015-04-03 08:30    0.3%    0.2%    0.1%
    2015-04-03 12:30:00   2015-04-03 12:30:00      0.3       0.2         0.1          NaN   NaN         NaN    NaN
2015-05-08 08:30:00                   NaT      NaN       NaN         NaN          2015-05-08 08:30    0.1%    0.2%    0.3%
    2015-05-08 12:30:00   2015-05-08 12:30:00      0.1       0.2         0.2          NaN   NaN         NaN    NaN

在这里格式化这个表真的很困难......但基本上上面就是所需的输出。

1 个答案:

答案 0 :(得分:0)

df1和df2具有不同的列名,因此concat函数不直接给出您想要的结果。相反,您可以更改df2列,然后连接数据帧。