使用 Numpy 获取两个 Pandas 数据帧共享列
要获取两个 DataFrame 共享的列,请使用 intersect1d()方法。此方法由 Numpy 提供,因此您需要导入 Pandas 和 Numpy。让我们首先导入所需的库 −
import pandas as pd
import numpy as np
创建两个 DataFrame −
# 创建 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]
})
# 创建 dataframe2
dataFrame2 = pd.DataFrame({"Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],"Units_Sold": [ 100, 110, 150, 80, 200, 90]
})
使用 numpy 的 intersect1d() 方法获取相同的列 −
res = np.intersect1d(dataFrame2.columns, dataFrame1.columns)
更多Pandas文章,请阅读:Pandas教程
例子
下面是代码 −
import pandas as pd
import numpy as np
# 创建 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"数据帧1...\n",dataFrame1
# 创建 dataframe2
dataFrame2 = pd.DataFrame({"Car": ['BMW', 'Lexus', 'Tesla', 'Mustang', 'Mercedes', 'Jaguar'],"Units_Sold": [ 100, 110, 150, 80, 200, 90]
})
print"数据帧2...\n",dataFrame2
# 使用 intersect1d()获取共同的列
res = np.intersect1d(dataFrame2.columns, dataFrame1.columns)
print"\n共同的列...\n",res
输出
这将产生以下输出 −
数据帧1...
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
数据帧2...
Car Units_Sold
0 BMW 100
1 Lexus 110
2 Tesla 150
3 Mustang 80
4 Mercedes 200
5 Jaguar 90
共同的列...
['Car' 'Units_Sold']