如何在Pandas中合并两个DataFrames?
要将一个数据框的行附加到另一个数据框的行中,可以使用Pandas的append()函数。通过append()函数,我们还可以添加列。让我们拿一个例子看看如何使用这种方法。
步骤
- 创建二维、大小可变、可能是异构的表格数据df1。
- 打印输入的DataFrame,df1。
- 创建另一个DataFrame, df2, 使用相同的列名并打印它。
- 使用append方法, df1.append(df2, ignore_index=True),将df2的行附加到df2中。
- 打印结果DataFrame。
更多Pandas文章,请阅读:Pandas教程
示例
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 "输入的DataFrame 1是:\n", df1
print "输入的DataFrame 2是:\n", df2
df3 = df1.append(df2, ignore_index=True)
print "附加后,DataFrame是:\n", df3
输出
输入的DataFrame 1是:
x y z
0 5 4 9
1 2 7 3
输入的DataFrame 2是:
x y z
0 1 1 29
1 3 9 30
附加后,DataFrame是:
x y z
0 5 4 9
1 2 7 3
2 1 1 29
3 3 9 30
现在,让我们为数据框使用不同的列名,并在不使用ignore_index参数的情况下使用append()函数。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 "输入的DataFrame 1是:\n", df1
print "输入的DataFrame 2是:\n", df2
df3 = df1.append(df2)
print "附加后,DataFrame是:\n", df3
现在,它将产生以下输出:
输入的DataFrame 1是:
x y z
0 5 4 9
1 2 7 3
输入的DataFrame 2是:
a b c
0 1 1 29
1 3 9 30
附加后,DataFrame是:
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