Pandas 如何合并两个DataFrame
要将一个DataFrame的行追加到另一个DataFrame的行,我们可以使用Pandas的append()函数。借助于append()方法,我们还可以追加列。让我们通过一个例子来看看如何使用这个方法。
步骤
- 创建一个两维的、可变大小的、可能异构的表格数据df1。
- 打印输入的DataFrame df1。
- 创建另一个DataFrame df2,具有相同的列名,并打印它。
- 使用append方法df1.append(df2, ignore_index=True)来追加df2的行到df1中。
- 打印结果DataFrame。
示例
import pandas as pd
df1 = pd.DataFrame({"x": [5, 2], "y": [4, 7], "z": [9, 3]})
df2 = pd.DataFrame({"x": [1, 3], "y": [1, 9], "z": [29, 30]})
print "Input DataFrame 1 is:\n", df1
print "Input DataFrame 2 is:\n", df2
df3 = df1.append(df2, ignore_index=True)
print "After appending, DataFrame is: \n", df3
输出
Input DataFrame 1 is:
x y z
0 5 4 9
1 2 7 3
Input DataFrame 2 is:
x y z
0 1 1 29
1 3 9 30
After appending, DataFrame is:
x y z
0 5 4 9
1 2 7 3
2 1 1 29
3 3 9 30
现在,让我们为数据框使用不同的列名,并在使用append()函数时不使用ignore_index参数。ignore_index的默认值为False。
import pandas as pd
df1 = pd.DataFrame({"x": [5, 2], "y": [4, 7], "z": [9, 3]})
df2 = pd.DataFrame({"a": [1, 3], "b": [1, 9], "c": [29, 30]})
print "Input DataFrame 1 is:\n", df1
print "Input DataFrame 2 is:\n", df2
df3 = df1.append(df2)
print "After appending, DataFrame is: \n", df3
现在,它将产生以下输出
Input DataFrame 1 is:
x y z
0 5 4 9
1 2 7 3
Input DataFrame 2 is:
a b c
0 1 1 29
1 3 9 30
After appending, DataFrame is:
x y z a b c
0 5.0 4.0 9.0 NaN NaN NaN
1 2.0 7.0 3.0 NaN NaN NaN
0 NaN NaN NaN 1.0 1.0 29.0
1 NaN NaN NaN 3.0 9.0 30.0