Chúng tôi sử dụng dataframes trong python để xử lý và phân tích dữ liệu dạng bảng trong python. Trong bài viết này, chúng tôi sẽ thảo luận về cách chúng tôi có thể nối hai hoặc nhiều khung dữ liệu trong python
Làm cách nào để nối các khung dữ liệu trong Python?
Để nối hai hoặc nhiều khung dữ liệu trong python, chúng ta có thể sử dụng phương thức concat[]
được xác định trong mô-đun pandas. Phương thức concat[]
lấy một danh sách các khung dữ liệu làm đối số đầu vào của nó và nối chúng theo chiều dọc
Chúng ta cũng có thể nối các khung dữ liệu trong python theo chiều ngang bằng cách sử dụng tham số axis của phương thức concat[]
. Tham số axis có giá trị mặc định là 0, biểu thị rằng các khung dữ liệu sẽ được nối theo chiều dọc. Nếu bạn muốn nối các khung dữ liệu theo chiều ngang, bạn có thể chuyển giá trị 1 cho tham số trục
Sau khi thực hiện, phương thức concat[]
sẽ trả về khung dữ liệu kết quả
Nối các khung dữ liệu theo chiều dọc trong python
Để nối hai khung dữ liệu theo chiều dọc trong python, trước tiên bạn cần nhập mô-đun pandas bằng câu lệnh nhập. Sau đó, bạn có thể nối các khung dữ liệu bằng cách sử dụng phương pháp concat[]
như sau
import numpy as np
import pandas as pd
df1=pd.read_csv["grade1.csv"]
print["First dataframe is:"]
print[df1]
df2=pd.read_csv["grade2.csv"]
print["second dataframe is:"]
print[df2]
df3=pd.concat[[df1,df2]]
print["Merged dataframe is:"]
print[df3]
đầu ra
First dataframe is:
Class Roll Name Marks Grade
0 1 11 Aditya 85 A
1 1 12 Chris 95 A
2 1 14 Sam 75 B
3 1 16 Aditya 78 B
4 1 15 Harry 55 C
5 2 1 Joel 68 B
6 2 22 Tom 73 B
7 2 15 Golu 79 B
second dataframe is:
Class Roll Name Marks Grade
0 2 27 Harsh 55 C
1 2 23 Clara 78 B
2 3 33 Tina 82 A
3 3 34 Amy 88 A
4 3 15 Prashant 78 B
5 3 27 Aditya 55 C
6 3 23 Radheshyam 78 B
7 3 11 Bobby 50 D
Merged dataframe is:
Class Roll Name Marks Grade
0 1 11 Aditya 85 A
1 1 12 Chris 95 A
2 1 14 Sam 75 B
3 1 16 Aditya 78 B
4 1 15 Harry 55 C
5 2 1 Joel 68 B
6 2 22 Tom 73 B
7 2 15 Golu 79 B
0 2 27 Harsh 55 C
1 2 23 Clara 78 B
2 3 33 Tina 82 A
3 3 34 Amy 88 A
4 3 15 Prashant 78 B
5 3 27 Aditya 55 C
6 3 23 Radheshyam 78 B
7 3 11 Bobby 50 D
Nếu tất cả các khung dữ liệu có cùng số cột và tên cột cũng giống nhau, thì khung dữ liệu kết quả có cùng số cột với các khung dữ liệu đầu vào. Bạn có thể quan sát điều này trong ví dụ trên
Tuy nhiên, nếu một khung dữ liệu có số lượng cột ít hơn các khung dữ liệu khác, giá trị tương ứng trong khung dữ liệu kết quả cho cột đó sẽ là NaN cho các hàng thu được từ khung dữ liệu. Bạn có thể quan sát điều này trong ví dụ sau
import numpy as np
import pandas as pd
df1=pd.read_csv["grade_with_roll.csv"]
print["First dataframe is:"]
print[df1]
df2=pd.read_csv["grade_with_name.csv"]
print["second dataframe is:"]
print[df2]
df3=pd.concat[[df1,df2]]
print["Merged dataframe is:"]
print[df3]
đầu ra
First dataframe is:
Roll Marks Grade
0 11 85 A
1 12 95 A
2 13 75 B
3 14 75 B
4 16 78 B
5 15 55 C
6 20 72 B
7 24 92 A
second dataframe is:
Roll Name Marks Grade
0 11 Aditya 85 A
1 12 Chris 95 A
2 13 Sam 75 B
3 14 Joel 75 B
4 16 Tom 78 B
5 15 Samantha 55 C
6 20 Tina 72 B
7 24 Amy 92 A
Merged dataframe is:
Roll Marks Grade Name
0 11 85 A NaN
1 12 95 A NaN
2 13 75 B NaN
3 14 75 B NaN
4 16 78 B NaN
5 15 55 C NaN
6 20 72 B NaN
7 24 92 A NaN
0 11 85 A Aditya
1 12 95 A Chris
2 13 75 B Sam
3 14 75 B Joel
4 16 78 B Tom
5 15 55 C Samantha
6 20 72 B Tina
7 24 92 A Amy
Nếu các khung dữ liệu có các tên cột khác nhau, thì mỗi tên cột được gán một cột riêng trong khung dữ liệu kết quả. Ngoài ra, giá trị tương ứng trong khung dữ liệu kết quả cho cột đó sẽ là NaN cho các hàng mà khung dữ liệu thu được không có cột được chỉ định
cách đọc được đề nghị. Nếu bạn thích học máy, bạn có thể đọc bài viết này về hồi quy trong học máy. Bạn cũng có thể thích bài viết này về phân cụm k-means với ví dụ số
Nối các khung dữ liệu theo chiều ngang trong Python
Để nối các khung dữ liệu theo chiều ngang, chúng tôi sẽ sử dụng tham số trục và cung cấp giá trị 1 làm đầu vào của nó trong phương thức concat[]
. Sau khi thực hiện, phương thức concat[]
sẽ trả về khung dữ liệu được nối theo chiều ngang như hình bên dưới
import numpy as np
import pandas as pd
df1=pd.read_csv["grade_with_roll.csv"]
print["First dataframe is:"]
print[df1]
df2=pd.read_csv["grade_with_name.csv"]
print["second dataframe is:"]
print[df2]
df3=pd.concat[[df1,df2],axis=1]
print["Merged dataframe is:"]
print[df3]
đầu ra
First dataframe is:
Roll Marks Grade
0 11 85 A
1 12 95 A
2 13 75 B
3 14 75 B
4 16 78 B
5 15 55 C
6 20 72 B
7 24 92 A
second dataframe is:
Roll Name Marks Grade
0 11 Aditya 85 A
1 12 Chris 95 A
2 13 Sam 75 B
3 14 Joel 75 B
4 16 Tom 78 B
5 15 Samantha 55 C
6 20 Tina 72 B
7 24 Amy 92 A
Merged dataframe is:
Roll Marks Grade Roll Name Marks Grade
0 11 85 A 11 Aditya 85 A
1 12 95 A 12 Chris 95 A
2 13 75 B 13 Sam 75 B
3 14 75 B 14 Joel 75 B
4 16 78 B 16 Tom 78 B
5 15 55 C 15 Samantha 55 C
6 20 72 B 20 Tina 72 B
7 24 92 A 24 Amy 92 A
Nếu các khung dữ liệu đang được nối có cùng số lượng bản ghi, thì khung dữ liệu kết quả sẽ không có bất kỳ giá trị NaN nào như trong ví dụ trên. Tuy nhiên, nếu một khung dữ liệu có số lượng hàng ít hơn khung dữ liệu khác, thì khung dữ liệu kết quả sẽ có các giá trị NaN. Điều này xảy ra khi tham số nối được đặt thành “bên ngoài”
Sự kết luận
Trong bài viết này, chúng tôi đã thảo luận về cách nối hai khung dữ liệu gấu trúc trong python. Để nối nhiều hơn hai khung dữ liệu, bạn chỉ cần thêm khung dữ liệu vào danh sách các khung dữ liệu được cung cấp làm đầu vào cho phương thức concat[]
Để tìm hiểu thêm về lập trình python, bạn có thể đọc bài viết này về hiểu từ điển trong python. Bạn cũng có thể thích bài viết này về hiểu danh sách trong python
Có liên quan
Đào tạo Python được đề xuất
Khóa học. Python 3 cho người mới bắt đầu
Hơn 15 giờ nội dung video với hướng dẫn có hướng dẫn cho người mới bắt đầu. Tìm hiểu cách tạo các ứng dụng trong thế giới thực và nắm vững kiến thức cơ bản