Python Pandas - 合併和建立兩個 DataFrame 的笛卡爾積
要合併 Pandas DataFrame,請使用 merge() 函式。笛卡爾積透過在 merge() 函式的“how”引數下設定這兩個 DataFrame 來實現,即 -
how = “cross”
首先,讓我們匯入 pandas 庫並使用別名 -
import pandas as pd
建立 DataFrame1 -
dataFrame1 = pd.DataFrame(
{
"Car": ['BMW', 'Mustang', 'Bentley', 'Jaguar'],"Units": [100, 150, 110, 120]
}
)建立 DataFrame2
dataFrame2 = pd.DataFrame(
{
"Car": ['BMW', 'Tesla', 'Jaguar'],"Reg_Price": [7000, 8000, 9000]
}
)接下來,在 "how" 引數中使用 "cross" 合併 DataFrame 即。笛卡爾積 -
mergedRes = pd.merge(dataFrame1, dataFrame2, how ="cross")
示例
以下是程式碼
import pandas as pd
# Create DataFrame1
dataFrame1 = pd.DataFrame(
{
"Car": ['BMW', 'Mustang', 'Bentley', 'Jaguar'],"Units": [100, 150, 110, 120]
}
)
print("DataFrame1 ...\n",dataFrame1)
# Create DataFrame2
dataFrame2 = pd.DataFrame(
{
"Car": ['BMW', 'Tesla', 'Jaguar'],"Reg_Price": [7000, 8000, 9000]
}
)
print("\nDataFrame2 ...\n",dataFrame2)
# merge DataFrames with "cross" in "how" parameter i.e Cartesian Product
mergedRes = pd.merge(dataFrame1, dataFrame2, how ="cross")
print("\nMerged dataframe with cartesian product...\n", mergedRes)
輸出
這將產生以下輸出 -
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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP