Computer >> Máy Tính >  >> Lập trình >> Python

Python Pandas - Hợp nhất DataFrame với mối quan hệ một-một

Để hợp nhất Pandas DataFrame, hãy sử dụng hợp nhất () hàm số. Mối quan hệ 1-1 được triển khai trên cả DataFrames bằng cách đặt trong “ xác thực ”Tham số của hàm merge () tức là -

validate = “one-to-one”
or
validate = “1:1”

Mối quan hệ một-nhiều kiểm tra xem các khóa hợp nhất có phải là duy nhất trong cả tập dữ liệu bên trái và bên phải hay không.

Đầu tiên, chúng ta hãy tạo 1 st DataFrame -

dataFrame1 = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],"Units": [100, 150, 110, 80, 110, 90]
   }
)

Bây giờ, chúng ta hãy tạo 2 nd DataFrame -

dataFrame2 = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],"Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]
   }
)

Ví dụ

Sau đây là mã -

#
# Merge Pandas DataFrame with one-to-one relation
#

import pandas as pd

# Create DataFrame1
dataFrame1 = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Mustang', 'Bentley', 'Jaguar'],"Units": [100, 150, 110, 80, 110, 90]
   }
)

print("DataFrame1 ...\n",dataFrame1)

# Create DataFrame2
dataFrame2 = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],"Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000]

   }
)

print("\nDataFrame2 ...\n",dataFrame2)

# merge DataFrames with "one-to-one" in "validate" parameter
mergedRes = pd.merge(dataFrame1, dataFrame2, validate ="one_to_one")
print("\nMerged dataframe with one-to-one relation...\n", mergedRes)

Đầu ra

Điều này sẽ tạo ra kết quả sau -

DataFrame1 ...
       Car   Units
0      BMW     100
1    Lexus     150
2     Audi     110
3  Mustang      80
4  Bentley     110
5   Jaguar      90

DataFrame2 ...
        Car   Reg_Price
0       BMW        7000
1     Lexus        1500
2     Tesla        5000
3   Mustang        8000
4  Mercedes        9000
5    Jaguar        6000

Merged dataframe with one-to-one relation
       Car   Units   Reg_Price
0      BMW     100        7000
1    Lexus     150        1500
2  Mustang      80        8000
3   Jaguar      90        6000