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

Python Pandas - Tìm các hàng không phổ biến giữa hai DataFrame

Để tìm các hàng không phổ biến giữa hai DataFrame, hãy sử dụng phương thức concat (). Trước tiên, hãy để chúng tôi nhập thư viện được yêu cầu với bí danh -

import pandas as pd

Tạo DataFrame1 với hai cột -

dataFrame1 = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],
      "Reg_Price": [1000, 1500, 1100, 800, 1100, 900]
   }
)

Tạo DataFrame2 với hai cột -

dataFrame2 = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],
      "Reg_Price": [1000, 1300, 1000, 800, 1100, 800]
   }
)

Tìm các hàng không phổ biến giữa hai DataFrame và nối kết quả -

print"\nUncommon rows between two DataFrames...\n",pd.concat([dataFrame1,dataFrame2]).drop_duplicates(keep=False)

Ví dụ

Sau đây là mã -

import pandas as pd

# Create DataFrame1
dataFrame1 = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],
      "Reg_Price": [1000, 1500, 1100, 800, 1100, 900]
   }
)

print"DataFrame1 ...\n",dataFrame1

# Create DataFrame2
dataFrame2 = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],
      "Reg_Price": [1000, 1300, 1000, 800, 1100, 800]
   }
)

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

# finding uncommon rows between two DataFrames and concat the result
print"\nUncommon rows between two DataFrames...\n",pd.concat([dataFrame1,dataFrame2]).drop_duplicates(keep=False)


Đầu ra

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

DataFrame1 ...
       Car   Reg_Price
0      BMW        1000
1    Lexus        1500
2     Audi        1100
3    Tesla         800
4  Bentley        1100
5   Jaguar         900

DataFrame2 ...
       Car   Reg_Price
0      BMW        1000
1    Lexus        1300
2     Audi        1000
3    Tesla         800
4  Bentley        1100
5   Jaguar         800

Uncommon rows between two DataFrames...
      Car   Reg_Price
1   Lexus        1500
2    Audi        1100
5  Jaguar         900
1   Lexus        1300
2    Audi        1000
5  Jaguar         800