[英]merging data frames without deleting unique values (Python)
我有一個看似簡單的問題,但我可以弄清楚該怎么做......
我有 3 個數據框。
df1:1 列,產品 SKU
df2:2 列,產品 SKU,價格(供應商 1)
df3:2 列,產品 SKU,價格(供應商 2)
我需要創建一個df4。
df4:3 列,產品 SKU,供應商 1 價格,供應商 2 價格
供應商 1 和 2 有一些匹配的 SKU。
Df4 需要包含所有 SKU,以及每個供應商的價格。 當供應商沒有該 SKU 的價格時,它應該是 0 或 Nan..
任何幫助都會很棒,iv 嘗試過 merge()、join()、concatenate() 和刪除重復項,但可以達到我正在尋找的結果
提前謝謝了
使用 - df4 = df2.merge(df3, on="Product_SKU", how = 'outer')
代碼-
我創建了隨機 dataframe df4
它包含所有唯一的Product_SKU
並且某些行將包含NaN
值,因為它的價格在df2
或df3
中不存在。
# initialize list of lists
data2 = [['clutch', 10], ['brake', 15],['tyre',50]]
# Create the pandas DataFrame
df2 = pd.DataFrame(data2, columns=['Product_SKU', 'Price_Supplier_1'])
# initialize list of lists
data3 = [['tyre', 30], ['brake', 25],['gear',100]]
# Create the pandas DataFrame
df3 = pd.DataFrame(data3, columns=['Product_SKU', 'Price_Supplier_2'])
df4 = df2.merge(df3, on="Product_SKU", how = 'outer')
df4
輸出-
Product_SKU Price_Supplier_1 Price_Supplier_2
0 clutch 10.0 NaN
1 brake 15.0 25.0
2 tyre 50.0 30.0
3 gear NaN 100.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.