Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

จะผนวก DataFrames สองอันใน Pandas ได้อย่างไร


ในการผนวกแถวของ dataframe หนึ่งกับอีกแถวหนึ่ง เราสามารถใช้ฟังก์ชัน Pandas append() ด้วยความช่วยเหลือของ append() เราสามารถต่อท้ายคอลัมน์ได้เช่นกัน มาดูตัวอย่างวิธีการใช้วิธีนี้กัน

ขั้นตอน

  • สร้างข้อมูลตารางแบบสองมิติ ปรับขนาดได้ และอาจต่างกันได้ df1
  • พิมพ์อินพุต DataFrame, df1.
  • สร้าง DataFrame อื่น df2 ด้วยชื่อคอลัมน์เดียวกันแล้วพิมพ์ออกมา
  • ใช้วิธีผนวก df1.append(df2, forget_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

ตอนนี้ ลองใช้ชื่อคอลัมน์ที่แตกต่างกันสำหรับ dataframes และใช้ฟังก์ชัน append() โดยไม่มีพารามิเตอร์ dissolve_index ค่าเริ่มต้นของ forget_index เป็นเท็จ

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