簡體   English   中英

根據條件將兩個 pandas 數據幀合並為一個

[英]Combining two pandas dataframes into one based on conditions

我有兩個數據框,簡化后看起來像這樣:

Dataframe A

ID 物品
1 蘋果
2

Dataframe B

ID 旗幟 價格(美元)
1 一個 3
1 2
2 4
2 一個 2

ID:每個項目的唯一標識符標志:每個供應商的唯一標識符價格:每個供應商的不同

在這個簡化的例子中,我想提取 dataframe B 的價格值並將它們添加到 dataframe A 的單獨列中,具體取決於它們的標志值。

結果應該類似於此Dataframe C

ID 物品 價格_A 價格_B
1 蘋果 3 2
2 2 4

我試圖將 dataframe B 拆分為具有不同標志值的兩個數據幀,然后將它們與 dataframe A 合並,但必須有一個更簡單的解決方案。

先感謝您: :)

*編輯:刪除圖片

您可以為此使用pd.mergepd.pivot_table

df_C = pd.merge(df_A, df_B, on=['ID']).pivot_table(index=['ID', 'item'], columns='flag', values='price')
df_C.columns = ['price_' + alpha for alpha in df_C.columns]

df_C = df_C.reset_index()

Output:

>>> df_C
   ID   item  price_A  price_B
0   1  apple        3        2
1   2  peach        2        4
(dfb
 .merge(dfa, on="ID")
 .pivot_table(index=['ID', 'item'], columns='flag', values='price ($)')
 .add_prefix("price_")
 .reset_index()
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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