我有两个不同大小的数据帧pin1和pin2具有不同的索引,即pin1具有索引(DispatchTime, Double)
而pin2具有values=['0','1','7']
。我想将两者结合起来形成['2','4']
。我尝试使用'外部'加入,但它正在将索引值更改为['0','1','2','4','7']
。
['0','1','2','3','4']
预期产出:
In [1]: pin1= pd.Series(np.random.randn(2), index=['2', '4'])
In [2]: pin2= pd.Series(np.random.randn(3), index=['0', '1', '7'])
In [3]: pin3=pd.merge(pin1,pin2,how='outer')
In [4]: pin3
Out [4]:
0 0.2941
1 0.2869
2 1.7098
3 -0.2126
4 0.2696
答案 0 :(得分:0)
如果索引集不相交,您可以使用pd.concat
:
pd.concat([pin1, pin2]).sort_index()
答案 1 :(得分:0)
使用combine_first
In [3732]: pin1.combine_first(pin2)
Out[3732]:
0 -0.820341
1 0.492719
2 -0.785723
4 -1.815021
7 2.027267
dtype: float64
或者,append
In [3734]: pin1.append(pin2).sort_index()
Out[3734]:
0 -0.820341
1 0.492719
2 -0.785723
4 -1.815021
7 2.027267
dtype: float64
详细
In [3735]: pin1
Out[3735]:
2 -0.785723
4 -1.815021
dtype: float64
In [3736]: pin2
Out[3736]:
0 -0.820341
1 0.492719
7 2.027267
dtype: float64
答案 2 :(得分:0)
或使用align
pin1.align(pin2,join='outer')[0].fillna(pin1.align(pin2,join='outer')[1])
Out[991]:
0 -0.278627
1 0.009388
2 -0.655377
4 0.564739
7 0.793576
dtype: float64