Tôi có một khung dữ liệu với hai hàng và tôi muốn hợp nhất hai hàng thành một hàng. DF trông như sau:
PC Rating CY Rating PY HT
0 DE101 NaN AA GV
0 DE101 AA+ NaN GV
Tôi đã cố gắng tạo hai khung dữ liệu riêng biệt và kết hợp chúng với df.merge [df2] mà không thành công. Kết quả phải là như sau
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
Bất kỳ ý tưởng? Cảm ơn trước DF.Update là một giải pháp khả thi?
EDIT:
df.head[1].combine_first[df.tail[1]]
Điều này hoạt động cho ví dụ trên. Tuy nhiên, đối với các cột chứa các giá trị số, phương pháp này không mang lại đầu ra mong muốn, ví dụ: vì
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
Đầu ra phải là:
PC Rating CY Rating PY HT MV1 MV2
0 DE101 AA+ AA GV 10 20
Công thức ở trên không tổng hợp các giá trị trong hai cột cuối cùng, nhưng lấy các giá trị trong hàng đầu tiên của DataFrame.
PC Rating CY Rating PY HT MV1 MV2
0 DE101 AA+ AA GV 0 20
Làm thế nào vấn đề này có thể được khắc phục?
Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: kết hợp dữ liệu trong gấu trúc với concat [] và merge [] This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Combining Data in pandas With concat[] and merge[]
Làm thế nào để bạn hợp nhất các hàng trong Python?merge, join, and concatenate your datasets, allowing you to unify and better understand your data as you analyze it.
Để hợp nhất các hàng trong một nhóm với nhau trong gấu trúc, chúng ta có thể sử dụng phương thức Agg [~] cùng với phương thức tham gia [~] để kết hợp các giá trị hàng.
0 để kết hợp dữ liệu trên các cột hoặc chỉ số chung for combining data on common columns or indicesPC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
1 để kết hợp dữ liệu trên cột khóa hoặc chỉ mục for combining data on a key column or an indexPC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
2 để kết hợp các khung dữ liệu trên các hàng hoặc cột for combining DataFrames across rows or columnsPC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
Ngoài việc học cách sử dụng các kỹ thuật này, bạn cũng đã tìm hiểu về logic đặt bằng cách thử nghiệm các cách khác nhau để tham gia bộ dữ liệu của bạn. 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ể truyề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 một bộ dữ liệu thực thu được từ NOAA, điều này cho thấy bạn không chỉ làm thế nào để kết hợp dữ liệu của mình mà còn cả những lợi ích của việc làm như vậy với các kỹ thuật tích hợp của Pandas. Nếu bạn đã tải xuống các tệp dự án, bạn có thể nhận được chúng ở đây:
Bạn đã học được điều gì đó mới? Tìm ra một cách sáng tạo để giải quyết một vấn đề bằng cách kết hợp các bộ dữ liệu phức tạp? Cho chúng tôi biết trong các ý kiến dưới đây!
Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: kết hợp dữ liệu trong gấu trúc với concat [] và merge []
Làm thế nào để bạn hợp nhất các hàng trong Python?
Để hợp nhất các hàng trong một nhóm với nhau trong gấu trúc, chúng ta có thể sử dụng phương thức Agg [~] cùng với phương thức tham gia [~] để kết hợp các giá trị hàng.many-to-one and many-to-many joins with
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0. In a many-to-one join, one of your datasets will have many rows in the merge column that repeat the same values. For example, the values could be 1, 1, 3, 5, and 5. At the same
time, the merge column in the other dataset won’t have repeated values. Take 1, 3, and 5 as an example.Làm cách nào để hợp nhất hai hàng trong Pandas Python?
Hợp nhất [] để kết hợp dữ liệu trên các cột hoặc chỉ số chung. . tham gia [] để kết hợp dữ liệu trên cột khóa hoặc chỉ mục. Concat [] để kết hợp các khung dữ liệu trên các hàng hoặc cột.
Điều làm cho
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0 rất linh hoạt là số lượng tùy chọn tuyệt đối để xác định hành vi hợp nhất của bạn. Mặc dù danh sách có vẻ khó khăn, nhưng với thực tế, bạn sẽ có thể hợp nhất các bộ dữ liệu thuộc mọi loại.Khi bạn sử dụng
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0, bạn sẽ cung cấp hai đối số bắt buộc:- DataFrame
3PC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
- DataFrame
4PC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
Sau đó, bạn có thể cung cấp một số đối số tùy chọn để xác định cách các bộ dữ liệu của bạn được hợp nhất:
5 Xác định loại hợp nhất để thực hiện. Nó mặc định làPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
6, nhưng các tùy chọn có thể khác bao gồmPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
7,PC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
8 vàPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
9. defines what kind of merge to make. It defaults toPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
6, but other possible options includePC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
7,PC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
8, andPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
9.PC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
0 cho biếtPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
0 cột hoặc chỉ số nào, còn được gọi là các cột chính hoặc chỉ số chính, bạn muốn tham gia. Đây là tùy chọn. Nếu nó được chỉ định vàPC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
2 vàPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
3 [được đề cập bên dưới] làPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
4, thì các cột từ hai khung dữ liệu chia sẻ tên sẽ được sử dụng làm khóa tham gia. Nếu bạn sử dụngPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
0, thì cột hoặc chỉ mục mà bạn chỉ định phải có trong cả hai đối tượng. tellsPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
0 which columns or indices, also called key columns or key indices, you want to join on. This is optional. If it isn’t specified, andPC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
2 andPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
3 [covered below] arePC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
4, then columns from the two DataFrames that share names will be used as join keys. If you usePC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
0, then the column or index that you specify must be present in both objects.PC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
6 vàPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
7 Chỉ định một cột hoặc chỉ mục mà chỉ có trong đối tượngPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
3 hoặcPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
4 mà bạn đang hợp nhất. Cả hai mặc định làPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
0. and>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
7 specify a column or index that’s present only in thePC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
3 orPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
4 object that you’re merging. Both default toPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
0.>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
2 vàPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
3 đều mặc định làPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
4, 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 để được hợp nhất, thì bạn có thể đặt đối số có liên quan thànhPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
4. and>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
3 both default toPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
4, but if you want to use the index of the left or right object to be merged, then you can set the relevant argument toPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
4.>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
5 là một bộ chuỗi để nối vào các tên cột giống hệt nhau mà các phím 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. is a tuple of strings to append to identical column names that aren’t merge keys. This allows you to keep track of the origins of columns with the same name.>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
Đây là một số thông số quan trọng nhất để chuyển sang
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0. Để biết danh sách đầy đủ, xem tài liệu Pandas.Cách sử dụng PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
Trước khi đi sâu vào các chi tiết về cách sử dụng
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0, trước tiên bạn nên hiểu các hình thức tham gia khác nhau:
9>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
0>>> climate_temp.head[] STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL 0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 >>> climate_precip.head[] STATION ... DLY-SNOW-PCTALL-GE050TI 0 GHCND:USC00049099 ... -9999 1 GHCND:USC00049099 ... -9999 2 GHCND:USC00049099 ... -9999 3 GHCND:USC00049099 ... 0 4 GHCND:USC00049099 ... 0
3PC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
4PC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
Bạn có thể tìm hiểu về các kết nối khác nhau này một cách chi tiết dưới đây, nhưng trước tiên hãy xem đại diện trực quan này của họ:
Trong hình ảnh này, hai vòng tròn là hai bộ dữ liệu của bạn và các nhãn chỉ vào phần hoặc phần của bộ dữ liệu bạn có thể mong đợi. 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 tiện dụng cho người học trực quan.
Nếu bạn có nền SQL, thì bạn có thể nhận ra tên hoạt động hợp nhất từ cú pháp
>>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
3. Ngoại trừ >>> import pandas as pd
>>> climate_temp = pd.read_csv["climate_temp.csv"]
>>> climate_precip = pd.read_csv["climate_precip.csv"]
9, tất cả các kỹ thuật này là các loại tham gia bên ngoài. Với các kết nối bên 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 từng có trong đối tượng khác sẽ được điền vào >>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
5, viết tắt của không phải là một số.outer joins. With outer joins, you’ll merge your data based on all the keys in the left object, the right object, or both.
For keys that only exist in one object, unmatched columns in the other object will be filled in with >>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
5, which stands for Not a Number.Bạn cũng có thể thấy một lời giải thích trực quan về các liên kết khác nhau trong bối cảnh SQL về kinh dị mã hóa. Bây giờ hãy xem các tham gia khác nhau trong hành động.
Ví dụ
Nhiều hướng dẫn của gấu trúc cung cấp các khung dữ liệu rất đơn giản để minh họa các khái niệm mà họ đ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 có thể liên hệ dữ liệu với bất cứ điều 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 các khung dữ liệu được hợp nhất:
- Quy định khí hậu cho California [nhiệt độ]
- Quy định 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à theo dõi cùng với các ví dụ bên dưới bằng cách sử dụng máy tính xách tay Jupyter tương tác và dữ liệu khí hậu CSVS:
Nếu bạn muốn tìm hiểu cách sử dụng máy tính xách tay Jupyter, thì hãy xem Jupyter Notebook: Giới thiệu.
Hai bộ dữ liệu này là từ Cơ quan 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 NOAA. Đầu tiên, tải các bộ dữ liệu vào các khung dữ liệu riêng biệt:
>>>
>>> import pandas as pd
>>> climate_temp = pd.read_csv["climate_temp.csv"]
>>> climate_precip = pd.read_csv["climate_precip.csv"]
Trong mã trên, bạn đã sử dụng gấu trúc
>>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
6 để tải các tệp CSV nguồn của bạn vào các đối tượng df.head[1].combine_first[df.tail[1]]
9 một cách thuận tiện. Sau đó, bạn có thể nhìn vào các tiêu đề và một vài hàng đầu tiên của các khung dữ liệu được tải với >>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
8:>>>
>>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
Trong mã trên, bạn đã sử dụng gấu trúc
>>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
6 để tải các tệp CSV nguồn của bạn vào các đối tượng df.head[1].combine_first[df.tail[1]]
9 một cách thuận tiện. Sau đó, bạn có thể nhìn vào các tiêu đề và một vài hàng đầu tiên của các khung dữ liệu được tải với >>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
8:Tại đây, bạn đã sử dụng
>>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
8 để có được 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 lớn hơn.>>>
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
Trong mã trên, bạn đã sử dụng gấu trúc
>>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
6 để tải các tệp CSV nguồn của bạn vào các đối tượng df.head[1].combine_first[df.tail[1]]
9 một cách thuận tiện. Sau đó, bạn có thể nhìn vào các tiêu đề và một vài hàng đầu tiên của các khung dữ liệu được tải với >>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
8:Tại đây, bạn đã sử dụng >>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
8 để có được 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 lớn hơn.
>>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
Tiếp theo, hãy xem nhanh các kích thước của hai DataFrames:key column.
Lưu ý rằng
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
0 là thuộc tính của các đối tượng df.head[1].combine_first[df.tail[1]]
9 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]
2, đầu ra của >>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
0 nói rằng DataFrame có 127.020 hàng và 21 cột.>>>
>>> precip_one_station = climate_precip.query["STATION == 'GHCND:USC00045721'"]
>>> precip_one_station.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
1460 GHCND:USC00045721 ... -9999
1461 GHCND:USC00045721 ... -9999
1462 GHCND:USC00045721 ... -9999
1463 GHCND:USC00045721 ... -9999
1464 GHCND:USC00045721 ... -9999
Tại đây, bạn đã tạo một khung dữ liệu mới có tên
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
7 từ >>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
8 DataFrame, chỉ chọn các hàng trong đó trường >>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
9 là >>> precip_one_station = climate_precip.query["STATION == 'GHCND:USC00045721'"]
>>> precip_one_station.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
1460 GHCND:USC00045721 ... -9999
1461 GHCND:USC00045721 ... -9999
1462 GHCND:USC00045721 ... -9999
1463 GHCND:USC00045721 ... -9999
1464 GHCND:USC00045721 ... -9999
0.Nếu bạn kiểm tra thuộc tính
>>> precip_one_station = climate_precip.query["STATION == 'GHCND:USC00045721'"]
>>> precip_one_station.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
1460 GHCND:USC00045721 ... -9999
1461 GHCND:USC00045721 ... -9999
1462 GHCND:USC00045721 ... -9999
1463 GHCND:USC00045721 ... -9999
1464 GHCND:USC00045721 ... -9999
1, thì bạn sẽ thấy rằng nó có 365 hàng. Khi bạn thực hiện hợp nhất, bạn nghĩ bạn sẽ nhận được bao nhiêu hàng trong DataFrame được hợp nhất? Hãy nhớ rằng bạn sẽ thực hiện tham gia bên trong:>>>
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
0Nếu bạn đoán 365 hàng, thì bạn đã đúng! Điều này là do
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0 mặc định cho một tham gia bên trong và một lần nối bên trong sẽ chỉ loại bỏ những hàng không phù hợp. Bởi vì tất cả các hàng của bạn đã có một trận đấu, không ai bị mất. Bạn cũng nên nhận thấy rằng có nhiều cột nữa: chính xác là 47.Với
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0, bạn cũng có quyền kiểm soát [các] cột nào để tham gia. Hãy nói rằng bạn muốn hợp nhất cả hai bộ dữ liệu, nhưng chỉ trên >>> precip_one_station = climate_precip.query["STATION == 'GHCND:USC00045721'"]
>>> precip_one_station.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
1460 GHCND:USC00045721 ... -9999
1461 GHCND:USC00045721 ... -9999
1462 GHCND:USC00045721 ... -9999
1463 GHCND:USC00045721 ... -9999
1464 GHCND:USC00045721 ... -9999
4 và >>> precip_one_station = climate_precip.query["STATION == 'GHCND:USC00045721'"]
>>> precip_one_station.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
1460 GHCND:USC00045721 ... -9999
1461 GHCND:USC00045721 ... -9999
1462 GHCND:USC00045721 ... -9999
1463 GHCND:USC00045721 ... -9999
1464 GHCND:USC00045721 ... -9999
5 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ố PC Rating CY Rating PY HT MV1 MV2
0 DE101 AA+ AA GV 0 20
0:>>>
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
1Bạn có thể chỉ định một cột khóa duy nhất với một chuỗi hoặc nhiều cột khóa có danh sách. Điều này dẫn đến một khung dữ liệu với 123.005 hàng và 48 cột.
Tại sao 48 cột thay vì 47? Bởi vì bạn đã chỉ định các cột chính để tham gia, Pandas không cố gắng hợp nhất tất cả các cột có thể hợp nhất. Điều này có thể dẫn đến các tên cột trùng lặp, có thể có hoặc không có giá trị khác nhau.
Bản sao của người Viking là trong các dấu ngoặc kép vì tên cột sẽ không phải là một kết hợp chính xác. Theo mặc định, chúng được thêm vào với
>>> precip_one_station = climate_precip.query["STATION == 'GHCND:USC00045721'"]
>>> precip_one_station.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
1460 GHCND:USC00045721 ... -9999
1461 GHCND:USC00045721 ... -9999
1462 GHCND:USC00045721 ... -9999
1463 GHCND:USC00045721 ... -9999
1464 GHCND:USC00045721 ... -9999
7 và >>> precip_one_station = climate_precip.query["STATION == 'GHCND:USC00045721'"]
>>> precip_one_station.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
1460 GHCND:USC00045721 ... -9999
1461 GHCND:USC00045721 ... -9999
1462 GHCND:USC00045721 ... -9999
1463 GHCND:USC00045721 ... -9999
1464 GHCND:USC00045721 ... -9999
8. Bạn cũng có thể sử dụng tham số >>> import pandas as pd
>>> climate_temp = pd.read_csv["climate_temp.csv"]
>>> climate_precip = pd.read_csv["climate_precip.csv"]
5 để kiểm soát những gì mà các tên được nối vào tên cột.Để ngăn chặn những bất ngờ, tất cả các ví dụ sau sẽ sử dụng tham số
PC Rating CY Rating PY HT MV1 MV2
0 DE101 AA+ AA GV 0 20
0 để chỉ định cột hoặc cột để tham gia.Tham gia bên ngoài
Tại đây, bạn sẽ chỉ định một tham gia bên ngoài với tham số
PC Rating CY Rating PY HT MV1 MV2
0 DE101 AA+ AA GV 10 20
5. Hãy nhớ từ các sơ đồ ở trên rằng trong một tham gia bên ngoài, còn được gọi là một tham gia bên ngoài đầy đủ, tất cả các hàng từ cả hai khung dữ liệu sẽ có trong khung dữ liệu mới.full outer join—all rows from both DataFrames will be present in the new DataFrame.
Nếu một hàng không có một trận đấu trong khung dữ liệu khác dựa trên [các] cột chính, thì bạn đã giành được hàng mất hàng như bạn sẽ tham gia 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-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
5 được điền vào khi thích hợp.Điều này được minh họa rõ nhất trong một ví dụ:
>>>
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
2Nế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]
0 của >>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
2, thì bạn sẽ thấy số lượng hàng trong PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
05 là như nhau. Với sự tham gia bên ngoài, bạn có thể mong đợi có cùng số lượng hàng với DataFrame lớn hơn. Đó là vì không có hàng nào bị mất ở một tham gia bên ngoài, ngay cả khi họ không có một trận đấu trong khung dữ liệu khác.Chỗ nối bên trái
Trong ví dụ này, bạn sẽ chỉ định một tham gia bên trái, còn được gọi là tham gia bên ngoài bên trái với tham số
PC Rating CY Rating PY HT MV1 MV2
0 DE101 AA+ AA GV 10 20
5. Sử dụng tham gia bên ngoài bên trái sẽ để lại DataFrame được hợp nhất mới của bạn với tất cả các hàng từ DataFrame bên trái, trong khi loại bỏ các hàng khỏi khung dữ liệu bên phải mà don có một khớp trong cột chính của DataFrame bên trái.left outer
join—with the PC Rating CY Rating PY HT MV1 MV2
0 DE101 AA+ AA GV 10 20
5 parameter. Using a left outer join will leave your new merged DataFrame with all rows from the left DataFrame, while discarding rows from the right DataFrame that don’t have a match in the key column of the left DataFrame. Bạn có thể nghĩ về điều này như là một nửa người bán hàng, nửa người nội bộ. Ví dụ dưới đây cho bạn thấy điều này trong hành động:
>>>
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
3 PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
07 có 127.020 hàng, khớp với số lượng hàng trong DataFrame bên trái, >>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
2. Để chứng minh rằng điều này chỉ giữ cho 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]
7 và >>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
2:>>>
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
4Điều này dẫn đến một khung dữ liệu với 365 hàng, phù hợp với số lượng hàng trong
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
7.Đúng vậy tham gia
Tham gia bên phải, hoặc tham gia bên ngoài bên phải, là phiên bản hình ảnh gương của tham gia bên trái. Với sự tham gia này, tất cả các hàng từ khung dữ liệu bên phải sẽ được giữ lại, trong khi các hàng trong khung dữ liệu bên trái mà không có khớp trong cột chính của khung dữ liệu bên phải sẽ bị loại bỏ.right outer join, is the mirror-image version of the left join. With this join, all rows from the right DataFrame will be retained, while rows in the left DataFrame without a match in the key column of the right DataFrame will be discarded.
Để chứng minh làm thế nào các tham gia bên 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
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
07 từ trên cao, chỉ lần này sử dụng tham gia bên phải:>>>
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
5Ở đây, bạn chỉ cần lật các vị trí của các khung dữ liệu đầu vào và chỉ định tham gia bên phải. Khi bạn kiểm tra
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
13, bạn có thể nhận thấy rằng nó không chính xác như PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
07. Sự khác biệt duy nhất giữa hai là thứ tự của các cột: các cột đầu vào đầu tiên sẽ luôn là chữ cái đầu tiên trong DataFrame mới được hình thành. PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0 là phức tạp nhất của các công cụ kết hợp dữ liệu Pandas. Nó cũng là nền tảng mà các công cụ khác được xây dựng. Sự 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
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0 khó sử dụng mà không cần nắm bắt trực quan các hoạt động lý thuyết và cơ sở dữ liệu. Trong phần này, bạn đã tìm hiểu 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 đến nhiều, cuối cùng đến 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 các bộ trong Python.Bây giờ, bạn sẽ nhìn vào
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1, một phiên bản đơn giản hóa của PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0.Pandas PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1: Kết hợp dữ liệu trên cột hoặc chỉ mục
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
Mặc dù
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0 là một hàm mô -đun, PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1 là một phương thức thể hiện trên DataFrame của bạn. Điều này cho phép bạn chỉ chỉ định một DataFrame, sẽ tham gia DataFrame mà bạn gọi PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1 trên.module function, PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1 is an instance method that lives on your DataFrame. This enables you to specify only one DataFrame, which will join the DataFrame you call
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1 on.Dưới mui xe,
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1 sử dụng PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0, nhưng nó cung cấp một cách hiệu quả hơn để tham gia DataFrames so với cuộc gọi PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0 được chỉ định đầy đủ. Trước khi lặn vào các tùy chọn có sẵn cho bạn, hãy xem ví dụ ngắn này:>>>
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
6Với các chỉ số hiển thị, bạn có thể thấy một tham gia bên trái xảy ra ở đây, với
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
7 là khung dữ liệu 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ố PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
27 và PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
28. Bởi vì PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1 tham gia vào các chỉ số và không trực tiếp hợp nhất các khung dữ liệu, tất cả các cột, ngay cả những người có tên phù hợp, được giữ lại trong khung dữ liệu kết quả.Bây giờ lật ví dụ trước đó và thay vào đó gọi
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1 trên DataFrame lớn hơn:>>>
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
7Với các chỉ số hiển thị, bạn có thể thấy một tham gia bên trái xảy ra ở đây, với
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
7 là khung dữ liệu 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ố PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
27 và PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
28. Bởi vì PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1 tham gia vào các chỉ số và không trực tiếp hợp nhất các khung dữ liệu, tất cả các cột, ngay cả những người có tên phù hợp, được giữ lại trong khung dữ liệu kết quả.Bây giờ lật ví dụ trước đó và thay vào đó gọi PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1 trên DataFrame lớn hơn:
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
Lưu ý rằng DataFrame lớn hơn, nhưng dữ liệu không tồn tại trong khung dữ liệu nhỏ hơn,
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
7, được điền vào các giá trị >>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
5.Cách sử dụng
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1Theo mặc định,
1 sẽ cố gắng thực hiện tham gia bên trái trên các chỉ số. Nếu bạn muốn tham gia trên các cột như bạn sẽ làm vớiPC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
0, thì bạn sẽ cần đặt các cột làm chỉ số. is the only required parameter. It defines the other DataFrame to join. You can also specify a list of DataFrames here, allowing you to combine a number of datasets in a singlePC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
1 call.PC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
Giống như
0,PC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
1 có một vài tham số giúp bạn linh hoạt hơn trong các lần tham gia. Tuy nhiên, vớiPC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
1, danh sách các tham số tương đối ngắn: specifies an optional column or index name for the left DataFrame [PC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
2 in the previous example] to join the>>> climate_temp.shape [127020, 21] >>> climate_precip.shape [151110, 29]
39 DataFrame’s index. If it’s set toPC Rating CY Rating PY HT 0 DE101 AA+ AA GV
0, which is the default, then you’ll get an index-on-index join.>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
39 là tham số duy nhất cần thiết. Nó xác định các dữ liệu khác để tham gia. Bạn cũng có thể chỉ định danh sách các khung dữ liệu ở đây, cho phép bạn kết hợp một số bộ dữ liệu trong một cuộc gọiPC Rating CY Rating PY HT 0 DE101 AA+ AA GV
1 duy nhất. has the same options asPC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
5 fromPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
0. The difference is that it’s index-based unless you also specify columns withPC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
0.PC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
0 Chỉ định một cột hoặc tên chỉ mục tùy chọn cho DataFrame bên trái [PC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
2 trong ví dụ trước] để tham gia chỉ mục>>> climate_temp.shape [127020, 21] >>> climate_precip.shape [151110, 29]
39 DataFrame. Nếu nó được đặt thànhPC Rating CY Rating PY HT 0 DE101 AA+ AA GV
0, đó là mặc định, thì bạn sẽ nhận được một chỉ số chỉ mục. and>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
28 are similar toPC Rating CY Rating PY HT 0 DE101 AA+ AA GV
5 in>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
0. They specify a suffix to add to any overlapping columns but have no effect when passing a list ofPC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
39 DataFrames.PC Rating CY Rating PY HT 0 DE101 AA+ AA GV
5 có các tùy chọn tương tự nhưPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
5 từPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
0. Sự khác biệt là dựa trên chỉ mục của nó trừ khi bạn cũng chỉ định các cột cóPC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
0. can be enabled to sort the resulting DataFrame by the join key.PC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
27 và PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
28 tương tự như >>> import pandas as pd
>>> climate_temp = pd.read_csv["climate_temp.csv"]
>>> climate_precip = pd.read_csv["climate_precip.csv"]
5 trong PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0. Họ chỉ định một hậu tố để thêm vào bất kỳ cột chồng chéo nào nhưng không có hiệu lực khi chuyển danh sách các khung dữ liệu PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
39.
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
>>> import pandas as pd
>>> climate_temp = pd.read_csv["climate_temp.csv"]
>>> climate_precip = pd.read_csv["climate_precip.csv"]
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
54 có thể được bật để sắp xếp DataFrame kết quả theo phím tham gia.Ví dụ
>>>
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
8Với các chỉ số hiển thị, bạn có thể thấy một tham gia bên trái xảy ra ở đây, với
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
7 là khung dữ liệu 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ố PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
27 và PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
28. Bởi vì PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1 tham gia vào các chỉ số và không trực tiếp hợp nhất các khung dữ liệu, tất cả các cột, ngay cả những người có tên phù hợp, được giữ lại trong khung dữ liệu kết quả.Bây giờ lật ví dụ trước đó và thay vào đó gọi
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1 trên DataFrame lớn hơn:Lưu ý rằng DataFrame lớn hơn, nhưng dữ liệu không tồn tại trong khung dữ liệu nhỏ hơn,
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
7, được điền vào các giá trị >>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
5.>>>
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
9Với các chỉ số hiển thị, bạn có thể thấy một tham gia bên trái xảy ra ở đây, với
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
7 là khung dữ liệu 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ố PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
27 và PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
28. Bởi vì PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1 tham gia vào các chỉ số và không trực tiếp hợp nhất các khung dữ liệu, tất cả các cột, ngay cả những người có tên phù hợp, được giữ lại trong khung dữ liệu kết quả.Bây giờ lật ví dụ trước đó và thay vào đó gọi
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1 trên DataFrame lớn hơn:Lưu ý rằng DataFrame lớn hơn, nhưng dữ liệu không tồn tại trong khung dữ liệu nhỏ hơn, >>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
7, được điền vào các giá trị >>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
5.
>>> climate_temp.shape
[127020, 21]
>>> climate_precip.shape
[151110, 29]
>>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
Cách sử dụng
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1Theo mặc định,
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1 sẽ cố gắng thực hiện tham gia bên trái trên các chỉ số. Nếu bạn muốn tham gia trên các cột như bạn sẽ làm với PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0, thì bạn sẽ cần đặt các cột làm chỉ số.axis — either the row axis or column axis. Visually, a concatenation with no parameters along rows would look like this:Để thực hiện điều này trong mã, bạn sẽ sử dụng
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
2 và truyền cho nó một danh sách các khung dữ liệu mà bạn muốn kết nối. Mã cho nhiệm vụ này sẽ trông như thế này:df.head[1].combine_first[df.tail[1]]
0Điều gì sẽ xảy ra nếu bạn muốn thực hiện một sự kết hợp dọc theo các cột thay thế? Đầu tiên, hãy xem biểu diễn trực quan của hoạt động này:
Để thực hiện điều này, bạn sẽ sử dụng cuộc gọi
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
2 như bạn đã làm ở trên, nhưng bạn cũng sẽ cần phải vượt qua tham số PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
82 với giá trị PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
83 hoặc PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
84:df.head[1].combine_first[df.tail[1]]
1Bạn sẽ tìm hiểu thêm về các tham số cho
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
2 trong phần bên dưới.Cách sử dụng PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
2
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
Như bạn có thể thấy, Concatenation 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 bộ duy nhất, lớn hơn để thực hiện các hoạt động bổ sung.
Khi bạn kết hợp các bộ dữ liệu, bạn có thể chỉ định trục dọc theo đó bạn sẽ kết nối. Nhưng điều gì xảy ra với trục khác?
Không. Theo mặc định, kết quả kết hợp trong một liên minh đã thiết lập, trong đó tất cả dữ liệu được bảo tồn. Bạn đã thấy điều này với
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0 và PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1 như là một tham gia bên ngoài và bạn có thể chỉ định điều này với tham số PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
89.set
union, where all data is preserved. You’ve seen this with PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
0 and PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
1 as an outer join, and you can specify this with the PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
89 parameter.Nếu bạn sử dụng tham số này, thì mặc định là
>>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
0, nhưng bạn cũng có tùy chọn >>> import pandas as pd
>>> climate_temp = pd.read_csv["climate_temp.csv"]
>>> climate_precip = pd.read_csv["climate_precip.csv"]
9, sẽ thực hiện tham gia bên trong hoặc đặt giao lộ.set intersection.Cũng như 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 tham gia bên trong với
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
2. Chỉ khi các nhãn trục phù hợp với bạn sẽ bảo tồn các hàng hoặc cột.Vì bạn đã tìm hiểu về tham số
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
89, đây là một số tham số khác mà PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
2 mất:
95 có bất kỳ trình tự nào, theo cách thường, một danh sách của các đối tượngPC Rating CY Rating PY HT 0 DE101 AA+ AA GV
8 hoặcdf.head[1].combine_first[df.tail[1]]
9 sẽ đượ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 một chỉ số phân cấp. takes any sequence—typically a list—ofdf.head[1].combine_first[df.tail[1]]
8 ordf.head[1].combine_first[df.tail[1]]
9 objects to be concatenated. You can also provide a dictionary. In this case, the keys will be used to construct a hierarchical index.df.head[1].combine_first[df.tail[1]]
82 đại diện cho trục mà bạn sẽ kết hợp với nhau. Giá trị mặc định làPC Rating CY Rating PY HT 0 DE101 AA+ AA GV
99, nối dọc theo chỉ mục hoặc trục hàng. Ngoài ra, giá trị củaPC Rating CY Rating PY HT 0 DE101 AA+ AA GV
83 sẽ kết hợp 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ỗiPC Rating CY Rating PY HT 0 DE101 AA+ AA GV
01 hoặcdf.head[1].combine_first[df.tail[1]]
84. represents the axis that you’ll concatenate along. The default value isPC Rating CY Rating PY HT 0 DE101 AA+ AA GV
99, which concatenates along the index, or row axis. Alternatively, a value ofPC Rating CY Rating PY HT 0 DE101 AA+ AA GV
83 will concatenate vertically, along columns. You can also use the string valuesPC Rating CY Rating PY HT 0 DE101 AA+ AA GV
01 ordf.head[1].combine_first[df.tail[1]]
84.PC Rating CY Rating PY HT 0 DE101 AA+ AA GV
89 tương tự như tham sốPC Rating CY Rating PY HT 0 DE101 AA+ AA GV
5 trong các kỹ thuật khác, nhưng nó chỉ chấp nhận các giá trịPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
9 hoặc>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
0. Giá trị mặc định là>>> climate_temp.head[] STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL 0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 >>> climate_precip.head[] STATION ... DLY-SNOW-PCTALL-GE050TI 0 GHCND:USC00049099 ... -9999 1 GHCND:USC00049099 ... -9999 2 GHCND:USC00049099 ... -9999 3 GHCND:USC00049099 ... 0 4 GHCND:USC00049099 ... 0
0, bảo tồn dữ liệu, trong khi>>> climate_temp.head[] STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL 0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 >>> climate_precip.head[] STATION ... DLY-SNOW-PCTALL-GE050TI 0 GHCND:USC00049099 ... -9999 1 GHCND:USC00049099 ... -9999 2 GHCND:USC00049099 ... -9999 3 GHCND:USC00049099 ... 0 4 GHCND:USC00049099 ... 0
9 sẽ loại bỏ dữ liệu không có khớp trong bộ dữ liệu khác. is similar to the>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
5 parameter in the other techniques, but it only accepts the valuesPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 10 20
9 or>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
0. The default value is>>> climate_temp.head[] STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL 0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 >>> climate_precip.head[] STATION ... DLY-SNOW-PCTALL-GE050TI 0 GHCND:USC00049099 ... -9999 1 GHCND:USC00049099 ... -9999 2 GHCND:USC00049099 ... -9999 3 GHCND:USC00049099 ... 0 4 GHCND:USC00049099 ... 0
0, which preserves data, while>>> climate_temp.head[] STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL 0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15 >>> climate_precip.head[] STATION ... DLY-SNOW-PCTALL-GE050TI 0 GHCND:USC00049099 ... -9999 1 GHCND:USC00049099 ... -9999 2 GHCND:USC00049099 ... -9999 3 GHCND:USC00049099 ... 0 4 GHCND:USC00049099 ... 0
9 would eliminate data that doesn’t have a match in the other dataset.>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
09 có giá trị booleandf.head[1].combine_first[df.tail[1]]
4 hoặc>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
4. Nó mặc định làPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
4. NếuPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
4, thì bộ dữ liệu kết hợp mới đã giành được bảo quản các giá trị chỉ mục gốc trong trục được chỉ định trong tham số>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
82. Điều này cho phép bạn có các giá trị chỉ mục hoàn toàn mới. takes a BooleanPC Rating CY Rating PY HT 0 DE101 AA+ AA GV
4 or>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
4 value. It defaults toPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
4. IfPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
4, then the new combined dataset won’t preserve the original index values in the axis specified in the>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
82 parameter. This lets you have entirely new index values.PC Rating CY Rating PY HT 0 DE101 AA+ AA GV
15 cho phép bạn xây dựng một chỉ số 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 bảo quản các chỉ số ban đầu để bạn có thể biết các hàng nào, ví dụ, đến từ đó dữ liệu gốc. allows you to construct a hierarchical index. One common use case is to have a new index while preserving the original indices so that you can tell which rows, for example, come from which original dataset.df.head[1].combine_first[df.tail[1]]
16 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àdf.head[1].combine_first[df.tail[1]]
4. Nếu giá trị được đặt thành>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
4, thì Pandas đã giành được các bản sao của dữ liệu nguồn. specifies whether you want to copy the source data. The default value isPC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
4. If the value is set to>>> import pandas as pd >>> climate_temp = pd.read_csv["climate_temp.csv"] >>> climate_precip = pd.read_csv["climate_precip.csv"]
4, then pandas won’t make copies of the source data.PC Rating CY Rating PY HT MV1 MV2 0 DE101 AA+ AA GV 0 20
Danh sách này không đầy đủ. Bạn có thể tìm thấy danh sách hoàn chỉnh, cập nhật các tham số trong tài liệu Pandas.
Ví dụ
Đầu tiên, bạn sẽ thực hiện một cách kết hợp cơ bản dọc theo trục mặc định bằng cách sử dụng các khung dữ liệu mà bạn đã chơi trong suốt hướng dẫn này:
>>>
df.head[1].combine_first[df.tail[1]]
2Điều này rất đơn giản theo thiết kế. Ở đây, bạn đã tạo một khung dữ liệu là một gấp đôi của một khung dữ liệu nhỏ đã được tạo trước đó. Một điều cần chú ý là các chỉ số lặp lại. Nếu bạn muốn một chỉ mục mới, dựa trên 0, thì bạn có thể sử dụng tham số
df.head[1].combine_first[df.tail[1]]
09:>>>
df.head[1].combine_first[df.tail[1]]
3Điều này rất đơn giản theo thiết kế. Ở đây, bạn đã tạo một khung dữ liệu là một gấp đôi của một khung dữ liệu nhỏ đã được tạo trước đó. Một điều cần chú ý là các chỉ số lặp lại. Nếu bạn muốn một chỉ mục mới, dựa trên 0, thì bạn có thể sử dụng tham số
df.head[1].combine_first[df.tail[1]]
09:>>>
df.head[1].combine_first[df.tail[1]]
4Điều này rất đơn giản theo thiết kế. Ở đây, bạn đã tạo một khung dữ liệu là một gấp đôi của một khung dữ liệu nhỏ đã được tạo trước đó. Một điều cần chú ý là các chỉ số lặp lại. Nếu bạn muốn một chỉ mục mới, dựa trên 0, thì bạn có thể sử dụng tham số
df.head[1].combine_first[df.tail[1]]
09:Như đã lưu ý trước đây, nếu bạn nối dọc theo trục 0 [hàng] nhưng có nhãn trong trục 1 [cột] không phù hợp với nhau, thì các cột đó sẽ được thêm vào và điền vào các giá trị
>>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
5. Điều này dẫn đến một sự tham gia bên ngoài:>>>
df.head[1].combine_first[df.tail[1]]
5Điều này rất đơn giản theo thiết kế. Ở đây, bạn đã tạo một khung dữ liệu là một gấp đôi của một khung dữ liệu nhỏ đã được tạo trước đó. Một điều cần chú ý là các chỉ số lặp lại. Nếu bạn muốn một chỉ mục mới, dựa trên 0, thì bạn có thể sử dụng tham số
df.head[1].combine_first[df.tail[1]]
09:Như đã lưu ý trước đây, nếu bạn nối dọc theo trục 0 [hàng] nhưng có nhãn trong trục 1 [cột] không phù hợp với nhau, thì các cột đó sẽ được thêm vào và điền vào các giá trị
>>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
5. Điều này dẫn đến một sự tham gia bên ngoài:>>>
df.head[1].combine_first[df.tail[1]]
6Điều này rất đơn giản theo thiết kế. Ở đây, bạn đã tạo một khung dữ liệu là một gấp đôi của một khung dữ liệu nhỏ đã được tạo trước đó. Một điều cần chú ý là các chỉ số lặp lại. Nếu bạn muốn một chỉ mục mới, dựa trên 0, thì bạn có thể sử dụng tham số
df.head[1].combine_first[df.tail[1]]
09:Như đã lưu ý trước đây, nếu bạn nối dọc theo trục 0 [hàng] nhưng có nhãn trong trục 1 [cột] không phù hợp với nhau, thì các cột đó sẽ được thêm vào và điền vào các giá trị
>>> climate_temp.head[]
STATION STATION_NAME ... DLY-HTDD-BASE60 DLY-HTDD-NORMAL
0 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
1 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
2 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
3 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
4 GHCND:USC00049099 TWENTYNINE PALMS CA US ... 10 15
>>> climate_precip.head[]
STATION ... DLY-SNOW-PCTALL-GE050TI
0 GHCND:USC00049099 ... -9999
1 GHCND:USC00049099 ... -9999
2 GHCND:USC00049099 ... -9999
3 GHCND:USC00049099 ... 0
4 GHCND:USC00049099 ... 0
5. Điều này dẫn đến một sự tham gia bên ngoài:>>>
df.head[1].combine_first[df.tail[1]]
7Nếu bạn kiểm tra các khung dữ liệu gốc, thì bạn có thể xác minh xem các nhãn trục cấp cao hơn
df.head[1].combine_first[df.tail[1]]
29 và df.head[1].combine_first[df.tail[1]]
30 có được thêm vào các hàng thích hợp hay không.Sự 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:
0 để kết hợp dữ liệu trên các cột hoặc chỉ số chung for combining data on common columns or indicesPC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
1 để kết hợp dữ liệu trên cột khóa hoặc chỉ mục for combining data on a key column or an indexPC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
2 để kết hợp các khung dữ liệu trên các hàng hoặc cột for combining DataFrames across rows or columnsPC Rating CY Rating PY HT MV1 MV2 0 DE101 NaN AA GV 0 20 0 DE101 AA+ NaN GV 10 0
Ngoài việc học cách sử dụng các kỹ thuật này, bạn cũng đã tìm hiểu về logic đặt bằng cách thử nghiệm các cách khác nhau để tham gia bộ dữ liệu của bạn. 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ể truyề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 một bộ dữ liệu thực thu được từ NOAA, điều này cho thấy bạn không chỉ làm thế nào để kết hợp dữ liệu của mình mà còn cả những lợi ích của việc làm như vậy với các kỹ thuật tích hợp của Pandas. Nếu bạn đã tải xuống các tệp dự án, bạn có thể nhận được chúng ở đây:
Bạn đã học được điều gì đó mới? Tìm ra một cách sáng tạo để giải quyết một vấn đề bằng cách kết hợp các bộ dữ liệu phức tạp? Cho chúng tôi biết trong các ý kiến dưới đây!
Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: kết hợp dữ liệu trong gấu trúc với concat [] và merge [] This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Combining Data in pandas With concat[] and merge[]