Python Pandas ŌĆō Merge和从两个数据框创建笛卡尔积
要合并Pandas DataFrame,请使用 merge() 函数。通过设置合并()函数的“ how ”参数,在两个DataFrames上实现笛卡尔积 i.e. −
how = “cross”
Python
首先,让我们导入pandas库并设置别名 −
import pandas as pd
Python
创建DataFrame1 −
dataFrame1 = pd.DataFrame(
{
"Car": ['BMW', 'Mustang', 'Bentley', 'Jaguar'],"Units": [100, 150, 110, 120]
}
)
Python
创建DataFrame2 –
dataFrame2 = pd.DataFrame(
{
"Car": ['BMW', 'Tesla', 'Jaguar'],"Reg_Price": [7000, 8000, 9000]
}
)
Python
接下来,使用”how”参数中的”cross”合并数据框,即笛卡尔积 –
mergedRes = pd.merge(dataFrame1, dataFrame2, how ="cross")
Python
示例
以下是代码
import pandas as pd
# 创建DataFrame1
dataFrame1 = pd.DataFrame(
{
"Car": ['BMW', 'Mustang', 'Bentley', 'Jaguar'], "Units": [100, 150, 110, 120]
}
)
print("DataFrame1 ...\n",dataFrame1)
# 创建DataFrame2
dataFrame2 = pd.DataFrame(
{
"Car": ['BMW', 'Tesla', 'Jaguar'], "Reg_Price": [7000, 8000, 9000]
}
)
print("\nDataFrame2 ...\n",dataFrame2)
# 合并数据框,使用"how"参数中的"cross" i.e.笛卡尔积
mergedRes = pd.merge(dataFrame1, dataFrame2, how ="cross")
print("\nMerged dataframe with cartesian product...\n", mergedRes)
Python
输出
这将产生以下输出 −
DataFrame1 ...
Car Units
0 BMW 100
1 Mustang 150
2 Bentley 110
3 Jaguar 120
DataFrame2 ...
Car Reg_Price
0 BMW 7000
1 Tesla 8000
2 Jaguar 9000
Merged dataframe with cartesian product...
Car Units Car_y Reg_Price
0 BMW 100 BMW 7000
1 BMW 100 Tesla 8000
2 BMW 180 Jaguar 9000
3 Mustang 150 BMW 7000
4 Mustang 150 Tesla 8000
5 Mustang 150 Jaguar 9000
6 Bentley 110 BMW 7000
7 Bentley 110 Tesla 8000
8 Bentley 110 Jaguar 9000
9 Jaguar 120 BMW 7000
10 Jaguar 120 Tesla 8000
11 Jaguar 120 Jaguar 9000
Python