如何在 Pandas 中附加两个 DataFrame?

要将一个数据帧的行附加到另一个数据帧的行,我们可以使用 Pandasappend()函数。在 的帮助下append(),我们也可以附加列。让我们举个例子,看看如何使用这个方法。

步骤

  • 创建二维、大小可变、潜在异构的表格数据 df1。

  • 打印输入数据帧,df1。

  • 使用相同的列名创建另一个 DataFrame df2 并打印它。

  • 使用附加方法 df1.append(df2, ignore_index=True) 将 df2 的行附加到 df2。

  • 打印 resultatnt 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