如何在 Pandas 中附加两个 DataFrame?


若要将一个 DataFrame 的行附加到另一个 DataFrame 的行,我们可以使用 Pandas append() 函数。借助 append(),我们也可以附加列。我们举一个例子,看看如何使用此方法。

步骤

  • 创建一个二维、大小可变、潜在异构表格数据 df1。
  • 打印输入 DataFrame,df1。
  • 创建另一个具有相同列名的 DataFrame,df2,并打印它。
  • 使用附加方法 df1.append(df2, ignore_index=True) 将 df2 的行附加到 df2。
  • 打印结果 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

接下来,我们针对 DataFrame 使用不同的列名,并在不使用 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 "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

更新日期:22-Aug-2023

86K+ 浏览次数

开启 职业生涯

完成课程并获得认证

开始
广告