Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để nối hai DataFrames trong Pandas?

Để nối các hàng của một khung dữ liệu này với các hàng của khung dữ liệu khác, chúng ta có thể sử dụng hàm Pandas append (). Với sự trợ giúp của append (), chúng ta cũng có thể nối thêm các cột. Hãy lấy một ví dụ và xem cách sử dụng phương pháp này.

Các bước

  • Tạo dữ liệu dạng bảng hai chiều, có thể thay đổi kích thước, có khả năng không đồng nhất, df1.
  • In DataFrame đầu vào, df1.
  • Tạo một DataFrame khác, df2, có cùng tên cột và in nó.
  • Sử dụng phương thức nối thêm, df1.append (df2, ignore_index =True), để nối các hàng của df2 với df2.
  • In kết quả DataFrame.

Ví dụ

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

Đầu ra

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

Bây giờ, hãy sử dụng các tên cột khác nhau cho các khung dữ liệu và sử dụng hàm append () mà không có tham số ignore_index. Giá trị mặc định của ignore_index là 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 

Bây giờ, nó sẽ tạo ra kết quả sau

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