簡體   English   中英

合並數據框而不刪除唯一值(Python)

[英]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值,因為它的價格在df2df3中不存在。

# 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM