将两个数据帧一次合并一行| Python | Pandas
我有两个这样的数据帧:将两个数据帧一次合并一行| Python | Pandas,python,pandas,append,Python,Pandas,Append,我有两个这样的数据帧: dataframe1 col1 col2 s8771 1 s9562 1 s3352 1 dataframe2 col1 col2 s834 0 s5216 0 s8104 0 s174 0 我想合并两个数据帧,我知道pd.append,但我想要的是每次从每个数据帧中提取一行。作为输出: result col1 col2 s8771 1 s834 0
dataframe1
col1 col2
s8771 1
s9562 1
s3352 1
dataframe2
col1 col2
s834 0
s5216 0
s8104 0
s174 0
我想合并两个数据帧,我知道pd.append,但我想要的是每次从每个数据帧中提取一行。作为输出:
result
col1 col2
s8771 1
s834 0
s9562 1
s5216 0
s3352 1
s8104 0
s174 0
有什么帮助吗?您可以尝试:
result = pd.concat([dataframe1, dataframe2]).sort_index(kind='merge')
例如:
df = pd.DataFrame( {'a':[1,2,3,4,5], 'b':[0,0,0,0,0]})
df1 = pd.DataFrame( {'a':[6,7,8,9], 'b':[1,1,1,1]})
df2 = pd.concat([df, df1]).sort_index(kind='merge')
输出:
a b
0 1 0
0 6 1
1 2 0
1 7 1
2 3 0
2 8 1
3 4 0
3 9 1
4 5 0
对默认索引使用++和drop=True
:
df = dataframe1.append(dataframe2).sort_index().reset_index(drop=True)
print (df)
col1 col2
0 s8771 1
1 s834 0
2 s9562 1
3 s5216 0
4 s3352 1
5 s8104 0
6 s174 0
可能需要指出您在此处指定合并排序而不是快速排序的原因。。。也许引用文档中的一句话,说mergesort是唯一稳定的算法,为什么它在这里很重要……5分钟后,把“mergesort”放进Joe:)坦白地说,我从来没有注意到有什么不同。。。我只是想指出,在你添加之前的5分钟,Joe的答案是“mergesort”。。。现在的区别是,
.append
或.concat
是这里使用的更好选择…@JonClements-我尝试了一些研究,似乎没有必要。是的。。。刚刚用df=pd.DataFrame({'value':range(10000)},index=[0]*10000)
。。。用默认值对单个级别的索引进行排序似乎很好。。。