Hướng dẫn how do you merge two rows in python? - làm thế nào để bạn hợp nhất hai hàng trong python?

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:

Show
              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.

  •               PC           Rating CY   Rating PY    HT    MV1   MV2
    0             DE101           NaN            AA     GV    0     20 
    0             DE101           AA+           NaN     GV    10    0
    
    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 indices
  •               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 khóa hoặc chỉ mục
    for combining data on a key column or an index
  •               PC           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 columns

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:

  1. DataFrame
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   10     20
    
    3
  2. DataFrame
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   10     20
    
    4

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:

  •               PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   10     20
    
    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ồm
                  PC           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 to
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   10     20
    
    6, but other possible options include
                  PC           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, and
                  PC           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   0     20
    
    0 cho biết
                  PC           Rating CY   Rating PY    HT    MV1   MV2
    0             DE101           NaN            AA     GV    0     20 
    0             DE101           AA+           NaN     GV    10    0
    
    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           AA+            AA     GV   0     20
    
    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ụng
                  PC           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.
    tells
                  PC           Rating CY   Rating PY    HT    MV1   MV2
    0             DE101           NaN            AA     GV    0     20 
    0             DE101           AA+           NaN     GV    10    0
    
    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, and
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   0     20
    
    2 and
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   0     20
    
    3 (covered below) are
                  PC           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 use
                  PC           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ượng
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   10     20
    
    3 hoặc
                  PC           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à
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    0.
    and
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   0     20
    
    7
    specify a column or index that’s present only in the
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   10     20
    
    3 or
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   10     20
    
    4 object that you’re merging. Both default to
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    0.

  •               PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   0     20
    
    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ành
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    4.
    and
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   0     20
    
    3
    both default to
                  PC           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 to
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    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.

Đâ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

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:

  • >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    9
  • >>> 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
  •               PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   10     20
    
    3
  •               PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   10     20
    
    4

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ọ:

Hướng dẫn how do you merge two rows in python? - làm thế nào để bạn hợp nhất hai hàng trong python?
Đạ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 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:

  1. Quy định khí hậu cho California (nhiệt độ)
  2. 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.

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
0

Nế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
1

Bạ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
2

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

>>> climate_temp.shape
(127020, 21)
>>> climate_precip.shape
(151110, 29)
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

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
6

Vớ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
7

Vớ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.

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
1

  • Theo 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ố.
    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 single
                  PC           Rating CY   Rating PY    HT    MV1   MV2
    0             DE101           NaN            AA     GV    0     20 
    0             DE101           AA+           NaN     GV    10    0
    
    1 call.

  • Giống như

                  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
    
    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ới
                  PC           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 (
    >>> climate_temp.shape
    (127020, 21)
    >>> climate_precip.shape
    (151110, 29)
    
    2 in the previous example) to join the
                  PC           Rating CY   Rating PY    HT
    0             DE101           AA+            AA     GV
    
    39 DataFrame’s index. If it’s set to
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    0, which is the default, then you’ll get an index-on-index join.

  •               PC           Rating CY   Rating PY    HT
    0             DE101           AA+            AA     GV
    
    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ọi
                  PC           Rating CY   Rating PY    HT    MV1   MV2
    0             DE101           NaN            AA     GV    0     20 
    0             DE101           AA+           NaN     GV    10    0
    
    1 duy nhất.
    has the same options as
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   10     20
    
    5 from
                  PC           Rating CY   Rating PY    HT    MV1   MV2
    0             DE101           NaN            AA     GV    0     20 
    0             DE101           AA+           NaN     GV    10    0
    
    0. The difference is that it’s index-based unless you also specify columns with
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   0     20
    
    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 (
    >>> climate_temp.shape
    (127020, 21)
    >>> climate_precip.shape
    (151110, 29)
    
    2 trong ví dụ trước) để tham gia chỉ mục
                  PC           Rating CY   Rating PY    HT
    0             DE101           AA+            AA     GV
    
    39 DataFrame. Nếu nó được đặt thành
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    0, đó là mặc định, thì bạn sẽ nhận được một chỉ số chỉ mục.
    and
                  PC           Rating CY   Rating PY    HT
    0             DE101           AA+            AA     GV
    
    28
    are similar to
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    5 in
                  PC           Rating CY   Rating PY    HT    MV1   MV2
    0             DE101           NaN            AA     GV    0     20 
    0             DE101           AA+           NaN     GV    10    0
    
    0. They specify a suffix to add to any overlapping columns but have no effect when passing a list of
                  PC           Rating CY   Rating PY    HT
    0             DE101           AA+            AA     GV
    
    39 DataFrames.

  •               PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   10     20
    
    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           NaN            AA     GV    0     20 
    0             DE101           AA+           NaN     GV    10    0
    
    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           AA+            AA     GV   0     20
    
    0.
    can be enabled to sort the resulting DataFrame by the join key.

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
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
8

Vớ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
9

Vớ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.

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
1

Theo 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:

Hướng dẫn how do you merge two rows in python? - làm thế nào để bạn hợp nhất hai hàng trong python?

Để 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:

Hướng dẫn how do you merge two rows in python? - làm thế nào để bạn hợp nhất hai hàng trong python?

Để 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))
1

Bạ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

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:

  •               PC           Rating CY   Rating PY    HT
    0             DE101           AA+            AA     GV
    
    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ượng
    df.head(1).combine_first(df.tail(1))
    
    8 hoặc
    df.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—of
    df.head(1).combine_first(df.tail(1))
    
    8 or
    df.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.

  •               PC           Rating CY   Rating PY    HT
    0             DE101           AA+            AA     GV
    
    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ủa
                  PC           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ỗi
    df.head(1).combine_first(df.tail(1))
    
    01 hoặc
                  PC           Rating CY   Rating PY    HT
    0             DE101           AA+            AA     GV
    
    84.
    represents the axis that you’ll concatenate along. The default value is
                  PC           Rating CY   Rating PY    HT
    0             DE101           AA+            AA     GV
    
    99, which concatenates along the index, or row axis. Alternatively, a value of
                  PC           Rating CY   Rating PY    HT
    0             DE101           AA+            AA     GV
    
    83 will concatenate vertically, along columns. You can also use the string values
    df.head(1).combine_first(df.tail(1))
    
    01 or
                  PC           Rating CY   Rating PY    HT
    0             DE101           AA+            AA     GV
    
    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   MV1    MV2
    0             DE101           AA+            AA     GV   10     20
    
    5 trong các kỹ thuật khác, nhưng nó chỉ chấp nhận các giá trị
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    9 hoặ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
    
    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
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    9 sẽ loại bỏ dữ liệu không có khớp trong bộ dữ liệu khác.
    is similar to the
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   10     20
    
    5 parameter in the other techniques, but it only accepts the values
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    9 or
    >>> 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. 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
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    9 would eliminate data that doesn’t have a match in the other dataset.

  • df.head(1).combine_first(df.tail(1))
    
    09 có giá trị boolean
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    4 hoặc
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   0     20
    
    4. Nó mặc định là
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   0     20
    
    4. Nếu
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    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ố
                  PC           Rating CY   Rating PY    HT
    0             DE101           AA+            AA     GV
    
    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 Boolean
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    4 or
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   0     20
    
    4 value. It defaults to
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   0     20
    
    4. If
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    4, then the new combined dataset won’t preserve the original index values in the axis specified in the
                  PC           Rating CY   Rating PY    HT
    0             DE101           AA+            AA     GV
    
    82 parameter. This lets you have entirely new index values.

  • df.head(1).combine_first(df.tail(1))
    
    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à
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    4. Nếu giá trị được đặt thành
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   0     20
    
    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 is
    >>> import pandas as pd
    >>> climate_temp = pd.read_csv("climate_temp.csv")
    >>> climate_precip = pd.read_csv("climate_precip.csv")
    
    4. If the value is set to
                  PC           Rating CY   Rating PY    HT   MV1    MV2
    0             DE101           AA+            AA     GV   0     20
    
    4, then pandas won’t make copies of the source data.

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))
7

Nế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:

  1.               PC           Rating CY   Rating PY    HT    MV1   MV2
    0             DE101           NaN            AA     GV    0     20 
    0             DE101           AA+           NaN     GV    10    0
    
    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 indices
  2.               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 khóa hoặc chỉ mục
    for combining data on a key column or an index
  3.               PC           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 columns

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()

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.use the agg(~) method together with the join(~) method to concatenate the row values.

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.concat() for combining DataFrames across rows or columns.

Có một chức năng hợp nhất trong Python?

Chức năng hợp nhất () thực hiện một số loại tham gia: các tham gia một-một, nhiều một và nhiều-nhiều.Tất cả ba loại nối được truy cập thông qua một cuộc gọi giống hệt nhau đến PD.Hợp nhất () giao diện;Loại tham gia được thực hiện phụ thuộc vào dạng dữ liệu đầu vào.. All three types of joins are accessed via an identical call to the pd. merge() interface; the type of join performed depends on the form of the input data.

Làm thế nào để bạn kết hợp hai dữ liệu trong Python?

Thủ thuật Python Pandas: 3 phương pháp tốt nhất để tham gia bộ dữ liệu..
Hợp nhất (): Để kết hợp các bộ dữ liệu trên cột hoặc chỉ mục chung hoặc cả hai ..
Concat (): Để kết hợp các bộ dữ liệu trên các hàng hoặc cột ..
tham gia (): Để kết hợp các bộ dữ liệu trên cột chính hoặc chỉ mục ..