Python 垂直合并2个数据帧

Python 垂直合并2个数据帧,python,pandas,merge,Python,Pandas,Merge,我有两个数据帧,每个数据帧有两列(相同的列名)。我想垂直合并它们,最终得到一个新的数据帧 当做 newdf = df.merge(df1,how='left',on=['Col1','Col2']) 新df只有df中的行,而df1中的行都没有。为什么会发生这种情况 Col1 Col2 asd 1232 cac 2324 ..... 而df1是: Col1 Col2 afaf 1213 asas 4353 新数据帧newdf应为: Col1 Col

我有两个数据帧,每个数据帧有两列(相同的列名)。我想垂直合并它们,最终得到一个新的数据帧

当做

newdf = df.merge(df1,how='left',on=['Col1','Col2'])
新df只有
df
中的行,而
df1
中的行都没有。为什么会发生这种情况

Col1    Col2
asd     1232
cac     2324
.....
df1
是:

Col1    Col2
afaf    1213
asas    4353
新数据帧
newdf
应为:

Col1   Col2
asd     1232
cac     2324
afaf    1213
asas    4353

如果不想按原样使用索引值,可以使用
append
ignore\u index

In [14]: df1.append(df2)
Out[14]:
   Col1  Col2
0   asd  1232
1   cac  2324
0  afaf  1213
1  asas  4353

In [15]: df1.append(df2, ignore_index=True)
Out[15]:
   Col1  Col2
0   asd  1232
1   cac  2324
2  afaf  1213
3  asas  4353
或者使用
pd.concat

In [16]: pd.concat([df1, df2])
Out[16]:
   Col1  Col2
0   asd  1232
1   cac  2324
0  afaf  1213
1  asas  4353

In [17]: pd.concat([df1, df2], ignore_index=True)
Out[17]:
   Col1  Col2
0   asd  1232
1   cac  2324
2  afaf  1213
3  asas  4353

您想要
pd.concat([df1,df2])
,这是一个非常常见的问题,请参阅,相关:我忘了提到concat返回:TypeError:第一个参数必须是pandas对象的iterable,您传递了一个“DataFrame”类型的对象当您传递
how='left'
时,这只会水平合并lhs上那些列中的值,不清楚您真正想要的是什么。您可以尝试传递“外部”附加所需的时间比合并所需的时间短。如果我想垂直合并2个以上的数据帧,我还可以使用这个吗?