Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将两个数据帧一次合并一行| Python | Pandas_Python_Pandas_Append - Fatal编程技术网

将两个数据帧一次合并一行| 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)
。。。用默认值对单个级别的索引进行排序似乎很好。。。