Có nhiều cách để tham gia, nối và hợp nhất dữ liệu bằng Pandas. Tuy nhiên, tất cả phụ thuộc vào trường hợp sử dụng của bạn. Đối với các ví dụ bên dưới, chúng tôi sẽ sử dụng ví dụ về một cửa hàng dưa chua hợp nhất dữ liệu của họ với một cửa hàng kem để tạo một khung dữ liệu duy nhất. Hãy cùng xem ví dụ đầu tiên về việc hợp nhất hai khung dữ liệu
Sử dụng dữ liệu Hợp nhất Pandas trên khóa id chung.
Đây là dữ liệu của chúng tôi về giá cả và các mặt hàng. chúng tôi sẽ pd. hợp nhất để tạo một khung dữ liệu duy nhất từ hai bảng. Trong ví dụ bên dưới, chúng ta sẽ sử dụng phép nối trái để hợp nhất hai bảng của chúng ta
Bảng 1. hợp nhất (bảng2, on = 'id chung', cách = 'trái')
#merging data frames with merge function in pandas
# load in the various tables from an excel document
items = pd.read_excel('Shop_Merger.xlsx',sheet_name='Pickle Items')
prices = pd.read_excel('Shop_Merger.xlsx',sheet_name='Pickle Prices')
nmerge = items.merge(prices, on='Item_id', how='left')
Đây là cách hợp nhất dễ dàng nhất mà bạn có thể thực hiện bằng chức năng hợp nhất của Pandas. Đánh giá mã bên dưới để xem cách chúng tôi đã nhập và thêm dữ liệu bằng cách sử dụng hàm hợp nhất trên một id chung của Item_id được tìm thấy trên cả hai bảng
Một biến thể của mã này bên phải và các phím. Điều này về cơ bản sẽ cung cấp cho bạn kết quả tương tự
#merging with a two different keys
merge = items.merge(price, left_on='Item_id',right_on='Item_id')
Hợp nhất hoặc Nối các bảng bằng cách sử dụng pd. concat() theo hàng hoặc cột
các pd. hàm concat cho phép bạn lập bảng bằng cách sử dụng cột và hoặc hàng. Chức năng này sẽ cho phép bạn nối hai bảng bằng cách xếp chồng chúng lên nhau theo các cột chung hoặc nối chúng
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
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
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 trong hành động ở bên dưới
4 trở nên linh hoạt là vô số 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
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
0
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
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
1 xác định loại hợp nhất cần thực hiện. Nó mặc định là
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
2, nhưng các tùy chọn khả thi khác bao gồm
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
3,
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
4 và
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
5
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
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à
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
8 và
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
0, 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
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
6, thì cột hoặc chỉ mục mà bạn chỉ định phải có trong cả hai đối tượng
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
8 và
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
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
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
6 để 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 điện cho
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
6, 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ấtLoại bỏ các quảng cáo
Cách sử dụng >>> climate_temp.shape
(127020, 21)
>>> climate_precip.shape
(151110, 29)
4
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
0
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
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
0 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
8, 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
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
Chuẩn khí hậu cho California (nhiệt độ)
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
1 để 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
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
4, 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?
>>>
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
Nếu bạn đoán đúng 365 hàng thì bạn đã đúng. Điều này là do
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
8 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ố
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
Để tránh bất ngờ, tất cả các ví dụ sau sẽ sử dụng tham số
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
6 để 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ố
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
1. 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 giống như khi thực hiện 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.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 151 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 152 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 153 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 154 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 15>>> climate_precip.head() STATION .. DLY-SNOW-PCTALL-GE050TI0 GHCND:USC00049099 .. -99991 GHCND:USC00049099 .. -99992 GHCND:USC00049099 .. -99993 GHCND:USC00049099 .. 04 GHCND:USC00049099 .. 0
08 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ố
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
1. 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ế
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
>>> climate_temp.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 151 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 152 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 153 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 154 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 15>>> climate_precip.head() STATION .. DLY-SNOW-PCTALL-GE050TI0 GHCND:USC00049099 .. -99991 GHCND:USC00049099 .. -99992 GHCND:USC00049099 .. -99993 GHCND:USC00049099 .. 04 GHCND:USC00049099 .. 0
10 từ phía trên, chỉ lần này sử dụng phép nối phải
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
4 khó sử dụng nếu không có sự hiểu biết trực quan về lý thuyết tập hợp và các phép toán 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
4, nhưng nó cung cấp một cách hiệu quả hơn để tham gia DataFrames so với lệnh gọi ____2_______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.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 151 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 152 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 153 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 154 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 15>>> climate_precip.head() STATION .. DLY-SNOW-PCTALL-GE050TI0 GHCND:USC00049099 .. -99991 GHCND:USC00049099 .. -99992 GHCND:USC00049099 .. -99993 GHCND:USC00049099 .. 04 GHCND:USC00049099 .. 0
0
Với các chỉ số có thể nhìn thấy, bạn có thể thấy một liên kết bên trái xảy ra ở đây, với
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.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 151 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 152 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 153 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 154 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 15>>> climate_precip.head() STATION .. DLY-SNOW-PCTALL-GE050TI0 GHCND:USC00049099 .. -99991 GHCND:USC00049099 .. -99992 GHCND:USC00049099 .. -99993 GHCND:USC00049099 .. 04 GHCND:USC00049099 .. 0
42 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 cuộc gọi
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
6 chỉ định tên cột hoặc chỉ mục tùy chọn cho Khung dữ liệu bên trái (
6, đây 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
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
1 có các tùy chọn giống như
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
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ó
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
6
>>> climate_temp.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 151 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 152 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 153 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 154 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 15>>> climate_precip.head() STATION .. DLY-SNOW-PCTALL-GE050TI0 GHCND:USC00049099 .. -99991 GHCND:USC00049099 .. -99992 GHCND:USC00049099 .. -99993 GHCND:USC00049099 .. 04 GHCND:USC00049099 .. 0
30 và
>>> climate_temp.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 151 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 152 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 153 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 154 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 15>>> climate_precip.head() STATION .. DLY-SNOW-PCTALL-GE050TI0 GHCND:USC00049099 .. -99991 GHCND:USC00049099 .. -99992 GHCND:USC00049099 .. -99993 GHCND:USC00049099 .. 04 GHCND:USC00049099 .. 0
5 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
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
5 để hiểu rõ hơn về mối liên hệ giữa hai kỹ thuậtLoạ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
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.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 151 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 152 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 153 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 154 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 15>>> climate_precip.head() STATION .. DLY-SNOW-PCTALL-GE050TI0 GHCND:USC00049099 .. -99991 GHCND:USC00049099 .. -99992 GHCND:USC00049099 .. -99993 GHCND:USC00049099 .. 04 GHCND:USC00049099 .. 0
4
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ị
6 như bạn đã làm ở trên, nhưng bạn cũng cần chuyển tham số
>>> climate_temp.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 151 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 152 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 153 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 154 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 15>>> climate_precip.head() STATION .. DLY-SNOW-PCTALL-GE050TI0 GHCND:USC00049099 .. -99991 GHCND:USC00049099 .. -99992 GHCND:USC00049099 .. -99993 GHCND:USC00049099 .. 04 GHCND:USC00049099 .. 0
86 với giá trị là
>>> climate_temp.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 151 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 152 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 153 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 154 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 15>>> climate_precip.head() STATION .. DLY-SNOW-PCTALL-GE050TI0 GHCND:USC00049099 .. -99991 GHCND:USC00049099 .. -99992 GHCND:USC00049099 .. -99993 GHCND:USC00049099 .. 04 GHCND:USC00049099 .. 0
87 hoặc
>>> climate_temp.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 151 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 152 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 153 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 154 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 15>>> climate_precip.head() STATION .. DLY-SNOW-PCTALL-GE050TI0 GHCND:USC00049099 .. -99991 GHCND:USC00049099 .. -99992 GHCND:USC00049099 .. -99993 GHCND:USC00049099 .. 04 GHCND:USC00049099 .. 0
88
>>> climate_temp.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 151 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 152 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 153 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 154 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 15>>> climate_precip.head() STATION .. DLY-SNOW-PCTALL-GE050TI0 GHCND:USC00049099 .. -99991 GHCND:USC00049099 .. -99992 GHCND:USC00049099 .. -99993 GHCND:USC00049099 .. 04 GHCND:USC00049099 .. 0
5
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 trong khi nối dọc theo các cột (trục 1), thì theo mặc định, các chỉ số (hàng) bổ sung cũng sẽ được thêm vào và các giá trị
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
>>> climate_temp.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 151 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 152 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 153 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 154 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 15>>> climate_precip.head() STATION .. DLY-SNOW-PCTALL-GE050TI0 GHCND:USC00049099 .. -99991 GHCND:USC00049099 .. -99992 GHCND:USC00049099 .. -99993 GHCND:USC00049099 .. 04 GHCND:USC00049099 .. 0
88
>>> climate_temp.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 151 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 152 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 153 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 154 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 15>>> climate_precip.head() STATION .. DLY-SNOW-PCTALL-GE050TI0 GHCND:USC00049099 .. -99991 GHCND:USC00049099 .. -99992 GHCND:USC00049099 .. -99993 GHCND:USC00049099 .. 04 GHCND:USC00049099 .. 0
98 tương tự như tham số
>>> inner_merged=pd.merge(precip_one_station,climate_temp)>>> inner_merged.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 191 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 192 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 193 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 194 GHCND:USC00045721 MITCHELL CAVERNS CA US .. 14 19>>> inner_merged.shape(365, 47)
1 trong các kỹ thuật khác, nhưng nó chỉ chấp nhận các giá trị
25 cho phép bạn tạo 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.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 151 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 152 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 153 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 154 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 15>>> climate_precip.head() STATION .. DLY-SNOW-PCTALL-GE050TI0 GHCND:USC00049099 .. -99991 GHCND:USC00049099 .. -99992 GHCND:USC00049099 .. -99993 GHCND:USC00049099 .. 04 GHCND:USC00049099 .. 0
94 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à
0, 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 đầy đủ, cập nhật các thông số trong
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.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 151 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 152 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 153 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 154 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 15>>> climate_precip.head() STATION .. DLY-SNOW-PCTALL-GE050TI0 GHCND:USC00049099 .. -99991 GHCND:USC00049099 .. -99992 GHCND:USC00049099 .. -99993 GHCND:USC00049099 .. 04 GHCND:USC00049099 .. 0
6
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.head() STATION STATION_NAME .. DLY-HTDD-BASE60 DLY-HTDD-NORMAL0 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 151 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 152 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 153 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 154 GHCND:USC00049099 TWENTYNINE PALMS CA US .. 10 15>>> climate_precip.head() STATION .. DLY-SNOW-PCTALL-GE050TI0 GHCND:USC00049099 .. -99991 GHCND:USC00049099 .. -99992 GHCND:USC00049099 .. -99993 GHCND:USC00049099 .. 04 GHCND:USC00049099 .. 0
7
Như đã lưu ý trước đó, 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ị
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ố
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 cấp cao 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 »
Chuyên gia 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. 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