考虑两个数据帧:
df1=pd.DataFrame({'ts':[1,2,3,4,5,6,7,8,9,10],'bt':[1,1,4]}).set_index("ts")
print(df1)
>>>
bt
ts
1 1
2 1
3 1
4 2
5 2
6 2
7 3
8 3
9 3
10 4
df2=pd.DataFrame({'bt':[1,4],'a':[1,5],'b':[2,9]}).set_index("bt")
print(df2)
>>>
a b
bt
1 1 2
2 4 5
3 2 4
4 5 9
我想将它们合并到 bt
值上,该值是第一个 df 中的列和第二列中的索引,同时保留第一个数据框中的 ts。因此,我正在寻求的输出是:
bt a b
ts
1 1 NaN NaN
2 1 NaN NaN
3 1 1.0 2.0
4 2 NaN NaN
5 2 NaN NaN
6 2 4.0 5.0
7 3 NaN NaN
8 3 NaN NaN
9 3 2.0 4.0
10 4 5.0 9.0
如果有人能建议实现上述组合数据框的最佳和最快方法,那就太好了。