pandas之间的差异与how ='outer'和pandas附加合并

时间:2018-04-14 17:10:56

标签: python python-3.x pandas

鉴于我有以下两个pandas DataFrame s:

df1 = pd.DataFrame({'A':['a', 'b', 'c'], 'B':[1,2,3]})
df2 = pd.DataFrame({'A':['d', 'e', 'f'], 'C':[4,5,6]})

之间有什么区别
df1.merge(df2, how='outer')

df1.append(df2)

虽然结果DataFrame在两种情况下是相同的,尽管on可以在任意列上合并,但我想知道在这种特定情况下是否有任何优势使用它?

1 个答案:

答案 0 :(得分:1)

一个重要的区别是输出数据帧的索引。 在append重新分配新索引时,merge将保留原始索引。 看那个例子:

import pandas as pd
df = pd.DataFrame({"a": [1,2,3], "b": ["alpha", "beta", "gamma"]})
df2 = pd.DataFrame({"c": [4,5,6], "b": ["epsilon", "delta", "omega"]})
df.append(df2)

返回:

     a        b    c
0  1.0    alpha  NaN
1  2.0     beta  NaN
2  3.0    gamma  NaN
0  NaN  epsilon  4.0
1  NaN    delta  5.0
2  NaN    omega  6.0

虽然:

df.merge(df2, how="outer")

返回:

     a        b    c
0  1.0    alpha  NaN
1  2.0     beta  NaN
2  3.0    gamma  NaN
3  NaN  epsilon  4.0
4  NaN    delta  5.0
5  NaN    omega  6.0