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

Python Pandas - Hợp nhất DataFrame với giá trị chỉ báo

Để hợp nhất Pandas DataFrame, hãy sử dụng hợp nhất () hàm số. Trong đó, bạn có thể đặt tham số chỉ báo thành Đúng hoặc Sai . Nếu bạn muốn kiểm tra khung dữ liệu nào có một bản ghi cụ thể, hãy sử dụng -

indicator= True

Như được hiển thị ở trên, sử dụng tham số trên là True, thêm một cột vào DataFrame đầu ra được gọi là “_merge”.

Đầu tiên, hãy nhập thư viện gấu trúc với bí danh -

import pandas as pd

Hãy để chúng tôi tạo DataFrame1 -

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

Tạo DataFrame2 -

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

   }
)

Bây giờ, hợp nhất DataFrames với giá trị chỉ báo True -

# merge DataFrames with indicator value
mergedRes = pd.merge(dataFrame1, dataFrame2, how ="left",indicator=True)

Ví dụ

Sau đây là mã -

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 indicator value
mergedRes = pd.merge(dataFrame1, dataFrame2, how ="left",indicator=True)
print"\nMerged dataframe...\n", mergedRes

Đầu ra

Điều này sẽ tạo ra kết quả sau. Ở đây, “cả hai” trong “_merge hiển thị rằng cả hai giá trị đều nằm trong cả DataFrames -

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...
       Car   Units   Reg_Price    _merge
0      BMW    100      7000.0       both
1    Lexus    150      1500.0       both
2     Audi    110         NaN  left_only
3  Mustang     80      8000.0       both
4  Bentley    110         NaN  left_only
5   Jaguar     90      6000.0       both