Hướng dẫn merge all dataframes in dictionary python - hợp nhất tất cả các khung dữ liệu trong từ điển python

Tôi có một từ điển dict chứa nhiều (hơn 100) khung dữ liệu. Mỗi DataFrame chứa hai biến name và 'value_i'. Ví dụ: khung dữ liệu đầu tiên trong từ điển này dict[1] trông giống như sau:

name  value_1
A      1
B      1.1 
C      2

Tương tự, khung dữ liệu thứ hai trong từ điển này dict2 trông giống như sau:

name  value_2
A      1
B      1.1 
D      1.3

Tôi muốn hợp nhất tất cả các khung dữ liệu trong từ điển này bằng biến chung name.

Kết quả dự kiến ​​sẽ trông giống như sau:

name  value_1   value_2
A      1         1
B      1.1       1.1
C      2         nan
D     nan           1.3

Tôi biết tôi có thể làm pd.merge[dict[i], dict[i-1], how = 'outer', on = 'name' nhiều lần để hợp nhất tất cả các khung dữ liệu với nhau. Nhưng điều này là quá kém hiệu quả.

Tôi đã thử pd.concat(dict.values(), axis = 1, join='outer' nhưng

name  value_2
A      1
B      1.1 
D      1.3
0 không cho phép tôi hợp nhất bởi biến chính.

Bất cứ ai có thể dạy tôi làm thế nào để làm điều đó hiệu quả hơn xin vui lòng?

Nếu bạn sử dụng Python, ngay cả đối với các nhiệm vụ đơn giản nhất, bạn có thể nhận thức được tầm quan trọng của các thư viện bên thứ ba. Thư viện Pandas, với sự hỗ trợ tuyệt vời cho DataFrames, là một trong những thư viện như vậy.

Bạn có thể nhập nhiều loại tệp vào Python DataFrames và tạo các phiên bản khác nhau để lưu trữ các bộ dữ liệu khác nhau. Khi bạn nhập dữ liệu của mình bằng DataFrames, bạn có thể hợp nhất chúng để thực hiện phân tích chi tiết.

Giải quyết những điều cơ bản

Trước khi bạn bắt đầu hợp nhất, bạn cần phải hợp nhất DataFrames để hợp nhất. Đối với mục đích phát triển, bạn có thể tạo một số dữ liệu giả để thử nghiệm.

Tạo các khung dữ liệu trong Python

Bước đầu tiên, hãy nhập thư viện Pandas vào tệp Python của bạn. Pandas là một thư viện của bên thứ ba xử lý DataFrames trong Python. Bạn có thể sử dụng câu lệnh nhập để sử dụng thư viện, như sau:import statement to use the library, as follows:

name  value_2
A      1
B      1.1 
D      1.3
1

Bạn có thể gán bí danh cho tên thư viện để rút ngắn tài liệu tham khảo mã của bạn.

Bạn cần tạo từ điển, mà bạn có thể chuyển đổi thành DataFrames. Để có kết quả tốt nhất, hãy tạo hai biến từ điển DIT -DIT1 và Dict2, để lưu trữ các thông tin cụ thể:dict1 and dict2—to store specific pieces of information:

name  value_2
A      1
B      1.1 
D      1.3
2

Hãy nhớ rằng, bạn cần có một yếu tố chung trong cả hai giá trị từ điển, để đóng vai trò là khóa chính để kết hợp các khung dữ liệu của bạn sau này.

Chuyển đổi từ điển của bạn thành DataFrames

Để chuyển đổi các giá trị từ điển của bạn thành DataFrames, bạn có thể sử dụng phương thức sau:

name  value_2
A      1
B      1.1 
D      1.3
3

Một số ID cho phép bạn kiểm tra các giá trị trong DataFrame bằng cách tham chiếu chức năng DataFrame và nhấn Run/EXECUTE. Có rất nhiều ID tương thích Python, vì vậy bạn có thể chọn và chọn một loại dễ nhất để bạn học.Run/Execute. There are many Python-compatible IDEs, so you can pick and choose the one which is the easiest for you to learn.

Jupyter Notebook code snippet

Khi bạn đã hài lòng với nội dung của các khung dữ liệu của bạn, bạn có thể chuyển sang bước hợp nhất.

Kết hợp các khung với chức năng hợp nhất

Hàm Merge là hàm Python đầu tiên bạn có thể sử dụng để kết hợp hai khung dữ liệu. Hàm này có các đối số mặc định sau:

name  value_2
A      1
B      1.1 
D      1.3
4

Where:

  • PD là bí danh cho Thư viện Pandas. is an alias for the Pandas library.
  • Hợp nhất là chức năng hợp nhất DataFrames. is the function that merges DataFrames.
  • DataFrame1 và DataFrame2 là hai khung dữ liệu để hợp nhất.and DataFrame2 are the two DataFrames to merge.
  • Cách xác định loại hợp nhất.defines the merge type.

Một số đối số tùy chọn bổ sung có sẵn, bạn có thể sử dụng khi bạn có cấu trúc dữ liệu phức tạp.

Bạn có thể sử dụng các giá trị khác nhau cho tham số cách xác định loại hợp nhất để thực hiện. Những loại hợp nhất này sẽ quen thuộc nếu bạn đã sử dụng SQL để tham gia các bảng cơ sở dữ liệu.

Hợp nhất trái

Loại hợp nhất bên trái giữ nguyên các giá trị DataFrame đầu tiên và kéo các giá trị phù hợp từ khung dữ liệu thứ hai.

Jupyter Notebook code snippet

Hợp nhất đúng

Loại hợp nhất phù hợp giữ cho các giá trị của DataFrame thứ hai còn nguyên vẹn và kéo các giá trị phù hợp từ khung dữ liệu đầu tiên.

Jupyter Notebook code snippet

Hợp nhất bên trong

Loại hợp nhất bên trong giữ lại các giá trị phù hợp từ cả hai khung dữ liệu và xóa các giá trị không phù hợp.

Jupyter Notebook code snippet

Hợp nhất bên ngoài

Loại hợp nhất bên ngoài giữ lại tất cả các giá trị phù hợp và không phù hợp và hợp nhất các khung dữ liệu lại với nhau.

Jupyter Notebook code snippet

Cách sử dụng hàm Concat

Hàm Concat là một tùy chọn linh hoạt so với một số chức năng hợp nhất khác của Python. Với chức năng Concat, bạn có thể kết hợp các khung dữ liệu theo chiều dọc và chiều ngang.concat function is a flexible option compared to some of Python’s other merge functions. With the concat function, you can combine DataFrames vertically and horizontally.

Tuy nhiên, nhược điểm của việc sử dụng chức năng này là nó loại bỏ bất kỳ giá trị không phù hợp nào theo mặc định. Giống như một số chức năng liên quan khác, chức năng này có một vài đối số, trong đó chỉ có một số ít là cần thiết cho việc kết hợp thành công.

name  value_2
A      1
B      1.1 
D      1.3
5

Where:

  • Concat là chức năng tham gia DataFrames. is the function that joins DataFrames.
  • DataFrames là một chuỗi các khung dữ liệu để kết hợp. is a sequence of DataFrames to concatenate.
  • Trục đại diện cho hướng nối, 0 là ngang, 1 là thẳng đứng. represents the direction of concatenation, 0 being horizontal, 1 being vertical.
  • Tham gia chỉ định một tham gia bên ngoài hoặc bên trong. specifies either an outer or inner join.

Sử dụng hai khung dữ liệu trên, bạn có thể thử chức năng Concat như sau:

name  value_2
A      1
B      1.1 
D      1.3
6

Sự vắng mặt của trục và tham gia các đối số trong mã trên kết hợp hai bộ dữ liệu. Đầu ra kết quả có tất cả các mục, không phân biệt trạng thái khớp.

Tương tự, bạn có thể sử dụng các đối số bổ sung để kiểm soát hướng và đầu ra của hàm Concat.

Để kiểm soát đầu ra với tất cả các mục phù hợp:

name  value_2
A      1
B      1.1 
D      1.3
7

Kết quả chứa tất cả các giá trị phù hợp giữa hai khung dữ liệu.

Jupyter Notebook code snippet

Hợp nhất các khung dữ liệu với Python

DataFrames là một phần không thể thiếu của Python, xem xét tính linh hoạt và chức năng của chúng. Với cách sử dụng nhiều mặt của họ, bạn có thể sử dụng chúng rộng rãi để thực hiện nhiều nhiệm vụ khác nhau một cách dễ dàng.

Nếu bạn vẫn đang tìm hiểu về các khung dữ liệu Python, hãy thử nhập một số tệp excel, sau đó kết hợp chúng với các cách tiếp cận khác nhau.