[英]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.merge
和pd.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.