Cách kết hợp C và Python

Các đối tượng

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
2 và
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
3 trong pandas là những công cụ mạnh mẽ để khám phá và phân tích dữ liệu. Một phần sức mạnh của họ đến từ cách tiếp cận nhiều mặt để kết hợp các bộ dữ liệu riêng biệt. Với gấu trúc, bạn có thể hợp nhất, tham gia và nối các bộ dữ liệu của mình, cho phép bạn thống nhất và hiểu rõ hơn về dữ liệu của mình khi phân tích dữ liệu đó

Trong hướng dẫn này, bạn sẽ tìm hiểu cách thức và thời điểm kết hợp dữ liệu của mình trong pandas với

  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    4 để kết hợp dữ liệu trên các cột hoặc chỉ mục chung
  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    5 để kết hợp dữ liệu trên một cột chính hoặc một chỉ mục
  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    6 để kết hợp DataFrames trên các hàng hoặc cột

Nếu bạn có một số kinh nghiệm sử dụng các đối tượng

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
3 và
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
2 trong gấu trúc và bạn đã sẵn sàng học cách kết hợp chúng, thì hướng dẫn này sẽ giúp bạn thực hiện chính xác điều đó. Nếu bạn cảm thấy hơi mệt mỏi, thì bạn có thể xem phần giới thiệu nhanh về DataFrames trước khi tiếp tục

Bạn có thể làm theo các ví dụ trong hướng dẫn này bằng cách sử dụng Jupyter Notebook tương tác và các tệp dữ liệu có sẵn tại liên kết bên dưới

Tải xuống sổ ghi chép và tập dữ liệu. Nhấp vào đây để lấy bộ dữ liệu Jupyter Notebook và CSV mà bạn sẽ sử dụng để tìm hiểu về Pandas merge[],. tham gia [] và concat [] trong hướng dẫn này

Ghi chú. Các kỹ thuật mà bạn sẽ tìm hiểu bên dưới thường sẽ hoạt động cho cả đối tượng

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
3 và
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
2. Nhưng để đơn giản và ngắn gọn, các ví dụ sẽ sử dụng thuật ngữ tập dữ liệu để chỉ các đối tượng có thể là DataFrames hoặc Series

gấu trúc
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4. Kết hợp dữ liệu trên các cột hoặc chỉ số chung

Kỹ thuật đầu tiên mà bạn sẽ học là

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4. Bạn có thể sử dụng
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 bất cứ lúc nào bạn muốn chức năng tương tự như thao tác nối cơ sở dữ liệu. Đây là thao tác linh hoạt nhất trong ba thao tác mà bạn sẽ học

Khi bạn muốn kết hợp các đối tượng dữ liệu dựa trên một hoặc nhiều khóa, tương tự như những gì bạn làm trong cơ sở dữ liệu quan hệ, thì

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 là công cụ bạn cần. Cụ thể hơn,
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 hữu ích nhất khi bạn muốn kết hợp các hàng có chung dữ liệu

Bạn có thể đạt được cả liên kết nhiều-một và nhiều-nhiều với

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4. Trong liên kết nhiều thành một, một trong các tập dữ liệu của bạn sẽ có nhiều hàng trong cột hợp nhất lặp lại các giá trị giống nhau. Ví dụ: các giá trị có thể là 1, 1, 3, 5 và 5. Đồng thời, cột hợp nhất trong tập dữ liệu khác sẽ không có giá trị lặp lại. Lấy 1, 3 và 5 làm ví dụ

Như bạn có thể đoán, trong phép nối nhiều-nhiều, cả hai cột hợp nhất của bạn sẽ có các giá trị lặp lại. Các phép hợp nhất này phức tạp hơn và dẫn đến tích Descartes của các hàng đã nối

Điều này có nghĩa là sau khi hợp nhất, bạn sẽ có mọi tổ hợp hàng có cùng giá trị trong cột chính. Bạn sẽ thấy điều này hoạt động trong các ví dụ bên dưới

Điều làm cho

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 trở nên linh hoạt là số lượng lớn các tùy chọn để xác định hành vi hợp nhất của bạn. Mặc dù danh sách này có vẻ khó khăn, nhưng với thực tế, bạn sẽ có thể hợp nhất các loại tập dữ liệu một cách thành thạo

Khi bạn sử dụng

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4, bạn sẽ cung cấp hai đối số bắt buộc

  1. Khung dữ liệu
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    79
  2. Khung dữ liệu
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    80

Sau đó, bạn có thể cung cấp một số đối số tùy chọn để xác định cách hợp nhất các bộ dữ liệu của mình

  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    81 xác định loại hợp nhất cần thực hiện. Nó mặc định là
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    82, nhưng các tùy chọn khả thi khác bao gồm
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    83,
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    84 và
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    85

  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    86 cho
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    4 biết cột hoặc chỉ mục nào, còn được gọi là cột chính hoặc chỉ mục chính, bạn muốn tham gia vào. Đây là tùy chọn. Nếu nó không được chỉ định và
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    88 và
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    89 [được đề cập bên dưới] là
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    80, thì các cột từ hai Khung dữ liệu có chung tên sẽ được sử dụng làm khóa nối. Nếu bạn sử dụng
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    86, thì cột hoặc chỉ mục mà bạn chỉ định phải có trong cả hai đối tượng

  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    82 và
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    83 chỉ định một cột hoặc chỉ mục chỉ có trong đối tượng
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    79 hoặc
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    80 mà bạn đang hợp nhất. Cả hai đều mặc định là
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    86

  • Cả

    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    88 và
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    89 đều mặc định là
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    80, nhưng nếu bạn muốn sử dụng chỉ mục của đối tượng bên trái hoặc bên phải để hợp nhất, thì bạn có thể đặt đối số liên quan thành
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    80

  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    81 là một bộ chuỗi để nối vào các tên cột giống hệt nhau không phải là khóa hợp nhất. Điều này cho phép bạn theo dõi nguồn gốc của các cột có cùng tên

Đây là một số tham số quan trọng nhất để chuyển đến

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4. Để biết danh sách đầy đủ, hãy xem tài liệu về gấu trúc

Ghi chú. Trong hướng dẫn này, bạn sẽ thấy rằng các ví dụ luôn sử dụng

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
86 để chỉ định [các] cột nào sẽ nối vào. Đây là cách an toàn nhất để hợp nhất dữ liệu của bạn vì bạn và bất kỳ ai đọc mã của bạn sẽ biết chính xác điều gì sẽ xảy ra khi gọi
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4. Nếu bạn không chỉ định [các] cột hợp nhất với
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
86, thì gấu trúc sẽ sử dụng bất kỳ cột nào có cùng tên với các khóa hợp nhất

Loại bỏ các quảng cáo

Cách sử dụng
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4

Trước khi tìm hiểu chi tiết về cách sử dụng

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4, trước tiên bạn nên hiểu các dạng liên kết khác nhau

  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    88
  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    89
  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    79
  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    80

Ghi chú. Mặc dù bạn đang tìm hiểu về việc hợp nhất, nhưng bạn sẽ thấy

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
88,
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
89,
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
79 và
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
80 cũng được gọi là hoạt động nối. Đối với hướng dẫn này, bạn có thể xem xét các điều khoản hợp nhất và tham gia tương đương

Bạn sẽ tìm hiểu chi tiết về các phép nối khác nhau này bên dưới, nhưng trước tiên hãy xem biểu diễn trực quan về chúng

Đại diện trực quan của các loại tham gia

Trong hình ảnh này, hai vòng tròn là hai tập dữ liệu của bạn và các nhãn trỏ đến phần hoặc các phần của tập dữ liệu mà bạn có thể muốn xem. Mặc dù sơ đồ này không bao gồm tất cả các sắc thái, nhưng nó có thể là một hướng dẫn hữu ích cho những người học trực quan

Nếu bạn có kiến ​​thức cơ bản về SQL, thì bạn có thể nhận ra các tên thao tác hợp nhất từ ​​cú pháp

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
46. Ngoại trừ
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
88, tất cả các kỹ thuật này đều là các loại liên kết ngoài. Với các phép nối ngoài, bạn sẽ hợp nhất dữ liệu của mình dựa trên tất cả các khóa trong đối tượng bên trái, đối tượng bên phải hoặc cả hai. Đối với các khóa chỉ tồn tại trong một đối tượng, các cột chưa khớp trong đối tượng khác sẽ được điền bằng
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
48, viết tắt của Not a Number

Bạn cũng có thể xem giải thích trực quan về các phép nối khác nhau trong ngữ cảnh SQL trên Coding Horror. Bây giờ hãy xem các phép nối khác nhau đang hoạt động

ví dụ

Nhiều hướng dẫn về gấu trúc cung cấp DataFrames rất đơn giản để minh họa các khái niệm mà chúng đang cố gắng giải thích. Cách tiếp cận này có thể gây nhầm lẫn vì bạn không thể liên kết dữ liệu với bất kỳ thứ gì cụ thể. Vì vậy, đối với hướng dẫn này, bạn sẽ sử dụng hai bộ dữ liệu trong thế giới thực làm DataFrames để hợp nhất

  1. Chuẩn khí hậu cho California [nhiệt độ]
  2. Chuẩn khí hậu cho California [lượng mưa]

Bạn có thể khám phá các bộ dữ liệu này và làm theo các ví dụ bên dưới bằng cách sử dụng Sổ tay Jupyter tương tác và CSV dữ liệu khí hậu

Tải xuống sổ ghi chép và tập dữ liệu. Nhấp vào đây để lấy bộ dữ liệu Jupyter Notebook và CSV mà bạn sẽ sử dụng để tìm hiểu về Pandas merge[],. tham gia [] và concat [] trong hướng dẫn này

Nếu bạn muốn tìm hiểu cách sử dụng Jupyter Notebooks, hãy xem Jupyter Notebook. Một lời giới thiệu

Hai bộ dữ liệu này là của Cơ quan Quản lý Khí quyển và Đại dương Quốc gia [NOAA] và được lấy từ kho lưu trữ dữ liệu công cộng của NOAA. Đầu tiên, tải các bộ dữ liệu vào DataFrames riêng biệt

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
7

Trong đoạn mã trên, bạn đã sử dụng pandas’

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
49 để tải các tệp CSV nguồn của bạn vào các đối tượng
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
3 một cách thuận tiện. Sau đó, bạn có thể xem các tiêu đề và một số hàng đầu tiên của DataFrames đã tải với
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
01

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
1

Ở đây, bạn đã sử dụng

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
01 để lấy năm hàng đầu tiên của mỗi DataFrame. Đảm bảo tự mình thử điều này, với Máy tính xách tay Jupyter tương tác hoặc trong bảng điều khiển của bạn, để bạn có thể khám phá dữ liệu sâu hơn

Tiếp theo, hãy xem nhanh kích thước của hai DataFrames

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]

Lưu ý rằng

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
03 là thuộc tính của đối tượng
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
3 cho bạn biết kích thước của DataFrame. Đối với
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
05, đầu ra của
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
03 cho biết DataFrame có 127.020 hàng và 21 cột

tham gia bên trong

Trong ví dụ này, bạn sẽ sử dụng

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 với các đối số mặc định của nó, điều này sẽ dẫn đến một phép nối bên trong. Hãy nhớ rằng khi tham gia bên trong, bạn sẽ mất các hàng không khớp trong cột khóa của Khung dữ liệu khác

Với hai tập dữ liệu được tải vào các đối tượng

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
3, bạn sẽ chọn một phần nhỏ của tập dữ liệu lượng mưa và sau đó sử dụng lệnh gọi
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 đơn giản để thực hiện liên kết bên trong. Điều này sẽ dẫn đến một tập dữ liệu nhỏ hơn, tập trung hơn

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
7

Tại đây, bạn đã tạo một Khung dữ liệu mới có tên là

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
20 từ Khung dữ liệu
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
21, chỉ chọn các hàng trong đó trường
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
22 là
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
23

Nếu bạn kiểm tra thuộc tính

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
24, thì bạn sẽ thấy thuộc tính này có 365 hàng. Khi bạn hợp nhất, bạn nghĩ bạn sẽ nhận được bao nhiêu hàng trong DataFrame đã hợp nhất?

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
8

Nếu bạn đoán đúng 365 hàng thì bạn đã đúng. Điều này là do

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 mặc định là nối bên trong và nối bên trong sẽ chỉ loại bỏ những hàng không khớp. Bởi vì tất cả các hàng của bạn đều trùng khớp, không có hàng nào bị mất. Bạn cũng nên chú ý rằng hiện có nhiều cột hơn. chính xác là 47

Với

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4, bạn cũng có quyền kiểm soát [các] cột nào sẽ tham gia vào. Giả sử bạn muốn hợp nhất cả hai tập dữ liệu, nhưng chỉ trên
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
27 và
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
28 vì sự kết hợp của cả hai sẽ mang lại một giá trị duy nhất cho mỗi hàng. Để làm như vậy, bạn có thể sử dụng tham số
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
86

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
8

Bạn có thể chỉ định một cột khóa với một chuỗi hoặc nhiều cột khóa với một danh sách. Điều này dẫn đến một DataFrame với 123.005 hàng và 48 cột

Tại sao 48 cột thay vì 47? . Điều này có thể dẫn đến tên cột "trùng lặp", có thể có hoặc không có giá trị khác nhau

"Trùng lặp" nằm trong dấu ngoặc kép vì tên cột sẽ không khớp chính xác. Theo mặc định, chúng được thêm vào với

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
100 và
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
101. Bạn cũng có thể sử dụng tham số
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
81 để kiểm soát nội dung được thêm vào tên cột

Để tránh bất ngờ, tất cả các ví dụ sau sẽ sử dụng tham số

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
86 để chỉ định cột hoặc nhiều cột để nối

tham gia bên ngoài

Tại đây, bạn sẽ chỉ định một phép nối ngoài với tham số

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
81. Hãy nhớ từ các sơ đồ ở trên rằng trong một phép nối ngoài—còn được gọi là phép nối ngoài đầy đủ—tất cả các hàng từ cả hai Khung dữ liệu sẽ có mặt trong Khung dữ liệu mới

Nếu một hàng không khớp trong DataFrame khác dựa trên [các] cột chính, thì bạn sẽ không bị mất hàng như khi thực hiện với phép nối bên trong. Thay vào đó, hàng sẽ nằm trong DataFrame được hợp nhất, với các giá trị

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
48 được điền vào khi thích hợp

Điều này được minh họa tốt nhất trong một ví dụ

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
8

Nếu bạn nhớ từ khi bạn kiểm tra thuộc tính

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
03 của
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
05, thì bạn sẽ thấy rằng số lượng hàng trong
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
108 là như nhau. Với phép nối ngoài, bạn có thể mong đợi có cùng số lượng hàng với DataFrame lớn hơn. Đó là bởi vì không có hàng nào bị mất trong một phép nối ngoài, ngay cả khi chúng không khớp trong DataFrame khác

Chỗ nối bên trái

Trong ví dụ này, bạn sẽ chỉ định một phép nối bên trái—còn được gọi là phép nối ngoài bên trái—với tham số

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
81. Sử dụng phép nối ngoài bên trái sẽ để lại Khung dữ liệu được hợp nhất mới của bạn với tất cả các hàng từ Khung dữ liệu bên trái, trong khi loại bỏ các hàng từ Khung dữ liệu bên phải không khớp trong cột chính của Khung dữ liệu bên trái

Bạn có thể coi đây là sự hợp nhất nửa bên ngoài, nửa bên trong. Ví dụ dưới đây cho bạn thấy điều này trong thực tế

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
110 có 127.020 hàng, khớp với số hàng trong DataFrame bên trái,
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
05. Để chứng minh rằng điều này chỉ đúng với DataFrame bên trái, hãy chạy cùng một mã, nhưng thay đổi vị trí của
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
20 và
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
05

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
0

Điều này dẫn đến một DataFrame có 365 hàng, khớp với số hàng trong

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
20

Quyền tham gia

Phép nối bên phải, hoặc phép nối ngoài bên phải, là phiên bản hình ảnh phản chiếu của phép nối bên trái. Với phép nối này, tất cả các hàng từ DataFrame bên phải sẽ được giữ lại, trong khi các hàng trong DataFrame bên trái không khớp trong cột chính của DataFrame bên phải sẽ bị loại bỏ

Để chứng minh cách nối phải và trái là hình ảnh phản chiếu của nhau, trong ví dụ bên dưới, bạn sẽ tạo lại Khung dữ liệu ________ 6110 từ phía trên, chỉ lần này sử dụng phép nối phải

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
2

Tại đây, bạn chỉ cần lật vị trí của các Khung dữ liệu đầu vào và chỉ định một phép nối phù hợp. Khi bạn kiểm tra

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
116, bạn có thể nhận thấy rằng nó không hoàn toàn giống với
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
110. Sự khác biệt duy nhất giữa hai là thứ tự của các cột. các cột của đầu vào đầu tiên sẽ luôn là cột đầu tiên trong DataFrame mới được tạo

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 là công cụ kết hợp dữ liệu phức tạp nhất của gấu trúc. Nó cũng là nền tảng để xây dựng các công cụ khác. Độ phức tạp của nó là sức mạnh lớn nhất của nó, cho phép bạn kết hợp các bộ dữ liệu theo mọi cách và tạo ra những hiểu biết mới về dữ liệu của bạn

Mặt khác, sự phức tạp này làm cho

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 khó sử dụng nếu không có sự nắm bắt trực quan về lý thuyết tập hợp và hoạt động của cơ sở dữ liệu. Trong phần này, bạn đã học về các kỹ thuật hợp nhất dữ liệu khác nhau, cũng như hợp nhất nhiều-một và nhiều-nhiều, cuối cùng xuất phát từ lý thuyết tập hợp. Để biết thêm thông tin về lý thuyết tập hợp, hãy xem Sets in Python

Bây giờ, bạn sẽ xem xét

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5, một phiên bản đơn giản hóa của
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4

Loại bỏ các quảng cáo

gấu trúc
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5. Kết hợp dữ liệu trên một cột hoặc chỉ mục

Mặc dù

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 là một chức năng mô-đun, nhưng
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5 là một phương thức thể hiện tồn tại trên DataFrame của bạn. Điều này cho phép bạn chỉ định một DataFrame, sẽ tham gia DataFrame mà bạn gọi là
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5 trên

Về cơ bản,

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5 sử dụng
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4, nhưng nó cung cấp cách tham gia DataFrames hiệu quả hơn so với lệnh gọi
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 được chỉ định đầy đủ. Trước khi đi sâu vào các tùy chọn có sẵn cho bạn, hãy xem ví dụ ngắn này

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
10

Với các chỉ số hiển thị, bạn có thể thấy một liên kết bên trái xảy ra ở đây, với

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
20 là DataFrame bên trái. Bạn có thể nhận thấy rằng ví dụ này cung cấp các tham số
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
130 và
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
131. Vì
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5 tham gia vào các chỉ mục và không trực tiếp hợp nhất các DataFrame, nên tất cả các cột—ngay cả những cột có tên trùng khớp—được giữ lại trong DataFrame kết quả

Bây giờ hãy lật lại ví dụ trước và thay vào đó hãy gọi

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5 trên DataFrame lớn hơn

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
11

Lưu ý rằng DataFrame lớn hơn, nhưng dữ liệu không tồn tại trong DataFrame nhỏ hơn,

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
20, được điền bằng các giá trị
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
48

Cách sử dụng
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5

Theo mặc định,

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5 sẽ cố gắng nối trái trên các chỉ số. Nếu bạn muốn tham gia vào các cột giống như bạn làm với
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4, thì bạn sẽ cần đặt các cột làm chỉ mục

Giống như

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4,
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5 có một số tham số giúp bạn linh hoạt hơn khi tham gia. Tuy nhiên, với
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5, danh sách tham số tương đối ngắn

  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    142 là tham số bắt buộc duy nhất. Nó xác định DataFrame khác để tham gia. Bạn cũng có thể chỉ định danh sách DataFrames tại đây, cho phép bạn kết hợp một số bộ dữ liệu trong một lệnh gọi
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    5

  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    86 chỉ định tên cột hoặc chỉ mục tùy chọn cho DataFrame bên trái [
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    05 trong ví dụ trước] để tham gia chỉ mục của
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    142 DataFrame. Nếu nó được đặt thành
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    86, là giá trị mặc định, thì bạn sẽ nhận được liên kết chỉ mục trên chỉ mục

  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    81 có các tùy chọn giống như
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    81 từ
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    4. Sự khác biệt là nó dựa trên chỉ mục trừ khi bạn cũng chỉ định các cột có
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    86

  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    130 và
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    131 tương tự như
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    81 trong
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    4. Chúng chỉ định một hậu tố để thêm vào bất kỳ cột chồng lấp nào nhưng không có tác dụng khi chuyển danh sách
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    142 Khung dữ liệu

  • Có thể kích hoạt

    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    157 để sắp xếp DataFrame kết quả theo khóa nối

ví dụ

Trong phần này, bạn sẽ thấy các ví dụ hiển thị một vài trường hợp sử dụng khác nhau cho

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5. Một số sẽ đơn giản hóa các cuộc gọi
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4. Những thứ khác sẽ là các tính năng khiến
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5 khác biệt với các lệnh gọi
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 dài dòng hơn

Vì bạn đã thấy một cuộc gọi ngắn

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5, nên trong ví dụ đầu tiên này, bạn sẽ cố gắng tạo lại một cuộc gọi
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 với
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5. Điều này sẽ yêu cầu những gì?

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
12

Bởi vì

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5 hoạt động trên các chỉ số, nếu bạn muốn tạo lại
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 từ trước đó, thì bạn phải đặt các chỉ số trên các cột nối mà bạn chỉ định. Trong ví dụ này, bạn đã sử dụng
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
167 để đặt các chỉ số của mình thành các cột chính trong liên kết. Lưu ý rằng ________ 05 thực hiện nối trái theo mặc định, vì vậy bạn cần sử dụng rõ ràng ________ 181 để thực hiện nối bên trong

Với điều này, kết nối giữa

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 và
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5 sẽ rõ ràng hơn

Bên dưới, bạn sẽ thấy một cuộc gọi

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5 gần như trống. Vì có các cột chồng chéo nên bạn sẽ cần chỉ định hậu tố bằng
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
130,
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
131 hoặc cả hai, nhưng ví dụ này sẽ minh họa hành vi điển hình hơn của
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
13

Ví dụ này gợi nhớ đến những gì bạn đã thấy trong phần giới thiệu về

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5 trước đó. Cuộc gọi giống nhau, dẫn đến một phép nối trái tạo ra một DataFrame có cùng số hàng như
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
05

Trong phần này, bạn đã học về

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5 và các tham số cũng như cách sử dụng của nó. Bạn cũng đã tìm hiểu về cách thức hoạt động bí mật của
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5 và bạn đã tạo lại cuộc gọi
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 với
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5 để hiểu rõ hơn về mối liên hệ giữa hai kỹ thuật

Loại bỏ các quảng cáo

gấu trúc
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
6. Kết hợp dữ liệu trên các hàng hoặc cột

Ghép nối hơi khác so với các kỹ thuật hợp nhất mà bạn đã thấy ở trên. Với việc hợp nhất, bạn có thể mong đợi tập dữ liệu kết quả có các hàng từ tập dữ liệu gốc được trộn lẫn với nhau, thường dựa trên một số điểm chung. Tùy thuộc vào loại hợp nhất, bạn cũng có thể mất các hàng không khớp trong tập dữ liệu khác

Với phép nối, các bộ dữ liệu của bạn chỉ được ghép lại với nhau dọc theo một trục — trục hàng hoặc trục cột. Trực quan, một phép nối không có tham số dọc theo hàng sẽ trông như thế này

Để thực hiện điều này trong mã, bạn sẽ sử dụng

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
6 và chuyển cho nó một danh sách các DataFrame mà bạn muốn nối. Mã cho nhiệm vụ này sẽ trông như thế này

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
14

Ghi chú. Ví dụ này giả định rằng tên cột của bạn giống nhau. Nếu tên cột của bạn khác trong khi nối dọc theo hàng [trục 0], thì theo mặc định, các cột cũng sẽ được thêm vào và các giá trị

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
48 sẽ được điền vào nếu có

Thay vào đó, nếu bạn muốn thực hiện nối dọc theo các cột thì sao?

Để thực hiện điều này, bạn sẽ sử dụng lệnh gọi

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
6 như bạn đã làm ở trên, nhưng bạn cũng cần chuyển tham số
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
186 với giá trị là
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
187 hoặc
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
188

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
15

Ghi chú. Ví dụ này giả định rằng các chỉ số của bạn giống nhau giữa các bộ dữ liệu. Nếu chúng khác nhau khi nối dọc theo các cột [trục 1], thì theo mặc định, các chỉ mục [hàng] bổ sung cũng sẽ được thêm vào và các giá trị

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
48 sẽ được điền vào nếu có

Bạn sẽ tìm hiểu thêm về các tham số cho

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
6 trong phần bên dưới

Cách sử dụng
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
6

Như bạn có thể thấy, nối là một cách đơn giản hơn để kết hợp các bộ dữ liệu. Nó thường được sử dụng để tạo thành một tập hợp lớn hơn để thực hiện các thao tác bổ sung trên

Ghi chú. Khi bạn gọi

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
6, một bản sao của tất cả dữ liệu mà bạn đang ghép nối sẽ được tạo. Bạn nên cẩn thận với nhiều cuộc gọi
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
6, vì nhiều bản sao được tạo có thể ảnh hưởng tiêu cực đến hiệu suất. Ngoài ra, bạn có thể đặt tham số
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
194 tùy chọn thành
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
80

Khi nối các bộ dữ liệu, bạn có thể chỉ định trục mà bạn sẽ nối. Nhưng điều gì xảy ra với trục kia?

Không. Theo mặc định, phép nối dẫn đến một tập hợp, trong đó tất cả dữ liệu được giữ nguyên. Bạn đã thấy điều này với

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
4 và
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
5 như một phép nối ngoài và bạn có thể chỉ định điều này với tham số
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
198

Nếu bạn sử dụng tham số này, thì giá trị mặc định là

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
89, nhưng bạn cũng có tùy chọn
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
88, tùy chọn này sẽ thực hiện phép nối bên trong hoặc đặt giao điểm

Như với các phép nối bên trong khác mà bạn đã thấy trước đó, một số mất dữ liệu có thể xảy ra khi bạn thực hiện phép nối bên trong với

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
6. Chỉ khi các nhãn trục khớp với nhau thì bạn mới giữ lại các hàng hoặc cột

Ghi chú. Hãy nhớ rằng, tham số

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
198 chỉ xác định cách xử lý các trục mà bạn không nối dọc

Vì bạn đã biết về tham số

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
198, đây là một số tham số khác mà
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
6 sử dụng

  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    05 lấy bất kỳ trình tự nào—thường là một danh sách—của các đối tượng
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    2 hoặc
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    3 được nối. Bạn cũng có thể cung cấp một từ điển. Trong trường hợp này, các khóa sẽ được sử dụng để xây dựng chỉ mục phân cấp

  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    186 đại diện cho trục mà bạn sẽ nối dọc theo. Giá trị mặc định là
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    09, nối dọc theo chỉ mục hoặc trục hàng. Ngoài ra, giá trị của
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    187 sẽ nối theo chiều dọc, dọc theo các cột. Bạn cũng có thể sử dụng các giá trị chuỗi
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    11 hoặc
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    188

  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    198 tương tự như tham số
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    81 trong các kỹ thuật khác, nhưng nó chỉ chấp nhận các giá trị
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    88 hoặc
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    89. Giá trị mặc định là
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    89, giữ nguyên dữ liệu, trong khi
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    88 sẽ loại bỏ dữ liệu không khớp trong tập dữ liệu khác

  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    19 nhận giá trị Boolean
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    80 hoặc
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    80. Nó mặc định là
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    80. Nếu
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    80, thì tập dữ liệu kết hợp mới sẽ không bảo toàn các giá trị chỉ mục ban đầu trong trục được chỉ định trong tham số
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    186. Điều này cho phép bạn có các giá trị chỉ mục hoàn toàn mới

  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    25 cho phép bạn xây dựng chỉ mục phân cấp. Một trường hợp sử dụng phổ biến là có một chỉ mục mới trong khi vẫn giữ nguyên các chỉ mục ban đầu để bạn có thể biết hàng nào, ví dụ, đến từ tập dữ liệu gốc nào

  • >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    194 chỉ định xem bạn có muốn sao chép dữ liệu nguồn hay không. Giá trị mặc định là
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    80. Nếu giá trị được đặt thành
    >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    80, thì gấu trúc sẽ không tạo bản sao của dữ liệu nguồn

Danh sách này không đầy đủ. Bạn có thể tìm thấy danh sách tham số đầy đủ, cập nhật trong tài liệu về gấu trúc

Loại bỏ các quảng cáo

ví dụ

Đầu tiên, bạn sẽ thực hiện nối cơ bản dọc theo trục mặc định bằng cách sử dụng DataFrames mà bạn đã sử dụng trong suốt hướng dẫn này

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
16

Cái này thiết kế rất đơn giản. Tại đây, bạn đã tạo một DataFrame gấp đôi một DataFrame nhỏ đã được tạo trước đó. Một điều cần lưu ý là các chỉ số lặp lại. Nếu bạn muốn có một chỉ mục mới, dựa trên 0, thì bạn có thể sử dụng tham số

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
19

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
17

Như đã lưu ý trước đây, nếu bạn nối dọc theo trục 0 [các hàng] nhưng có nhãn ở trục 1 [cột] không khớp, thì các cột đó sẽ được thêm vào và điền vào các giá trị

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
48. Điều này dẫn đến một kết nối bên ngoài

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
18

Với hai DataFrames này, do bạn chỉ ghép dọc theo hàng nên rất ít cột trùng tên. Điều đó có nghĩa là bạn sẽ thấy rất nhiều cột có giá trị

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
48

Thay vào đó, để loại bỏ các cột có bất kỳ dữ liệu bị thiếu nào, hãy sử dụng tham số

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
198 với giá trị
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
33 để thực hiện nối bên trong

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
19

Sử dụng phép nối bên trong, bạn sẽ chỉ còn lại những cột mà DataFrames ban đầu có điểm chung.

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
22,
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
35 và
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
36

Bạn cũng có thể lật cái này bằng cách đặt tham số

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
186

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
0

Bây giờ bạn chỉ có các hàng có dữ liệu cho tất cả các cột trong cả hai Khung dữ liệu. Không phải ngẫu nhiên mà số lượng hàng tương ứng với số lượng của DataFrame nhỏ hơn

Một thủ thuật hữu ích khác để ghép nối là sử dụng tham số

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
25 để tạo nhãn trục phân cấp. Điều này hữu ích nếu bạn muốn giữ lại các chỉ số hoặc tên cột của tập dữ liệu gốc nhưng cũng muốn thêm những cái mới

>>>

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
1

Nếu bạn kiểm tra DataFrames ban đầu, thì bạn có thể xác minh xem các nhãn trục cấp cao hơn

>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
39 và
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
40 đã được thêm vào các hàng thích hợp hay chưa

Phần kết luận

Bây giờ bạn đã học được ba kỹ thuật quan trọng nhất để kết hợp dữ liệu trong gấu trúc

  1. >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    4 để kết hợp dữ liệu trên các cột hoặc chỉ mục chung
  2. >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    5 để kết hợp dữ liệu trên một cột chính hoặc một chỉ mục
  3. >>> climate_temp.shape
    [127020, 21]
    >>> climate_precip.shape
    [151110, 29]
    
    6 để kết hợp DataFrames trên các hàng hoặc cột

Ngoài việc học cách sử dụng các kỹ thuật này, bạn cũng đã học về logic tập hợp bằng cách thử nghiệm các cách khác nhau để tham gia tập dữ liệu của mình. Ngoài ra, bạn đã tìm hiểu về các tham số phổ biến nhất cho từng kỹ thuật trên và những đối số nào bạn có thể chuyển để tùy chỉnh đầu ra của chúng

Bạn đã thấy các kỹ thuật này hoạt động trên tập dữ liệu thực thu được từ NOAA, tập dữ liệu này không chỉ cho bạn thấy cách kết hợp dữ liệu của mình mà còn cả lợi ích của việc làm như vậy với các kỹ thuật tích hợp sẵn của gấu trúc. Nếu bạn chưa tải xuống các tệp dự án, bạn có thể lấy chúng tại đây

Tải xuống sổ ghi chép và tập dữ liệu. Nhấp vào đây để lấy bộ dữ liệu Jupyter Notebook và CSV mà bạn sẽ sử dụng để tìm hiểu về Pandas merge[],. tham gia [] và concat [] trong hướng dẫn này

Bạn đã học được điều gì mới?

Đánh dấu là đã hoàn thành

Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Kết hợp dữ liệu trong pandas Với concat[] và merge[]

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Gửi cho tôi thủ thuật Python »

Giới thiệu về Kyle Stratis

Kyle là một nhà phát triển tự học đang làm kỹ sư dữ liệu cao cấp tại Vizit Labs. Trong quá khứ, ông đã thành lập DanqEx [trước đây là Nasdanq. sàn giao dịch chứng khoán meme ban đầu] và Encryptid Gaming

» Thông tin thêm về Kyle

Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Aldren

Bryan

Geir Arne

Joanna

Gia-cốp

kate

Martin

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bậc thầy Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

Chúng ta có thể kết hợp C và Python không?

Mở rộng Python bằng C hoặc C++ Việc thêm các mô-đun tích hợp mới vào Python khá dễ dàng, nếu bạn biết cách lập trình bằng C. Such extension modules can do two things that can't be done directly in Python: they can implement new built-in object types, and they can call C library functions and system calls.

Chúng ta có thể kết hợp Python và C++ với nhau không?

Cũng có thể nhúng Python vào chương trình C++ ; .

Python có thể chạy nhanh như C không?

Nó không biên dịch trước thời gian . PyPy là trình thông dịch thời gian chạy nhanh hơn ngôn ngữ được thông dịch đầy đủ nhưng chậm hơn ngôn ngữ được biên dịch đầy đủ chẳng hạn như C .

C nhanh hơn Python bao nhiêu?

Đó là 450 triệu vòng lặp trong một giây, nhanh hơn 45 lần so với Python. Hơn nữa, C có thể được biên dịch ở chế độ tối ưu hóa để có hiệu suất tốt hơn.

Chủ Đề