如何在 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+ 瀏覽次數

開啟 職業生涯

完成課程並獲得認證

開始
廣告