我有以下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
在这里格式化这个表真的很困难......但基本上上面就是所需的输出。
答案 0 :(得分:0)
df1和df2具有不同的列名,因此concat函数不直接给出您想要的结果。相反,您可以更改df2列,然后连接数据帧。