2016-12-26 64 views
0

我有以下2个dataframes:
DF1:蟒蛇大熊猫concatening 2个时间序列dataframes

   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的数据中的节点判断是正确分配的,但它没有出现。

任何建议让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 

它真的相当困难的这里格式化表格......但基本上这里上面会所需的输出。

+0

你能发布你想要的DF /数据集吗? – MaxU

+0

应该使用'pandas.merge'或'df.join' – reptilicus

回答

0

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

+0

不,但我希望列保持独特。应该合并的唯一列是索引及其日期时间值。 –