Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python - Lấy cột chung của hai DataFrame Pandas dùng Numpy

Để lấy cột chung của hai DataFrame, sử dụng phương thức intersect1d(). Phương thức này do numpy cung cấp, nên cần nhập Numpy cùng Pandas. Trước tiên, nhập các thư viện cần thiết:

import pandas as pd
import numpy as np

Tạo hai DataFrame:

# tạo dataframe1
dataFrame1 = pd.DataFrame({"Car": ['Bentley', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
                          "Cubic_Capacity": [2000, 1800, 1500, 2500, 2200, 3000],
                          "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000],
                          "Units_Sold": [100, 110, 150, 80, 200, 90]})
# tạo dataframe2
dataFrame2 = pd.DataFrame({"Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
                          "Units_Sold": [100, 110, 150, 80, 200, 90]})

Lấy cột chung dùng phương thức intersect1d() của numpy:

res = np.intersect1d(dataFrame2.columns, dataFrame1.columns)

Ví dụ hoàn chỉnh

Mã nguồn đầy đủ:

import pandas as pd
import numpy as np
# tạo dataframe1
dataFrame1 = pd.DataFrame({"Car": ['Bentley', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
                          "Cubic_Capacity": [2000, 1800, 1500, 2500, 2200, 3000],
                          "Reg_Price": [7000, 1500, 5000, 8000, 9000, 6000],
                          "Units_Sold": [100, 110, 150, 80, 200, 90]})
print("Dataframe1...\n", dataFrame1)
# tạo dataframe2
dataFrame2 = pd.DataFrame({"Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],
                          "Units_Sold": [100, 110, 150, 80, 200, 90]})
print("Dataframe2...\n", dataFrame2)
# lấy cột chung dùng intersect1d()
res = np.intersect1d(dataFrame2.columns, dataFrame1.columns)
print("\nCột chung...\n", res)

Kết quả

Chương trình sẽ tạo ra kết quả sau:

Dataframe1...
   Car  Cubic_Capacity  Reg_Price  Units_Sold
0 Bentley            2000       7000         100
1 Lexus              1800       1500         110
2 Tesla              1500       5000         150
3 Mustang            2500       8000          80
4 Mercedes           2200       9000         200
5 Jaguar             3000       6000          90
Dataframe2...
   Car  Units_Sold
0 BMW         100
1 Lexus       110
2 Tesla       150
3 Mustang      80
4 Mercedes    200
5 Jaguar       90
Common columns...
['Car' 'Units_Sold']