有没有一种有效的方法来合并大熊猫中的两个排序数据帧,维护排序?

时间:2013-05-01 12:44:51

标签: python numpy pandas

如果我有两个已经在兼容键上排序的数据帧(或系列),我希望能够便宜地将它们合并在一起并保持排序。除了通过concat()和显式sort()

之外,我看不到一种方法
a = pd.DataFrame([0,1,2,3], index=[1,2,3,5], columns=['x'])
b = pd.DataFrame([4,5,6,7], index=[0,1,4,6], columns=['x'])
print pd.concat([a,b])
print pd.concat([a,b]).sort()

   x
1  0
2  1
3  2
5  3
0  4
1  5
4  6
6  7

   x
0  4
1  0
1  5
2  1
3  2
4  6
5  3
6  7

看起来有一些关于numpy数组的相关讨论,暗示了一种“交错”方法,但我没有找到一个好的答案。

1 个答案:

答案 0 :(得分:0)

如果我们将问题限制为只有一列的ab,那么我会通过这条路径:

s = a.merge(b, how='outer', left_index=True, right_index=True)
s.stack().reset_index(level=1, drop=True)