![](/img/trans.png)
[英]pandas update a dataframe with values from another dataframe on the match of column values
[英]Set values of pandas dataframe that match another dataframe on a specific column
我有dataframe A
,其中包含"id, Title, Author, Publish Date, Copies Sold"
等列,並包含所有書籍的列表,但每本書的已售出副本列設置為 0。
然后數據框 B,C,D,E,etc 有列"id, Copies Sold"
,具有真實的副本銷售價值,但每個只有書籍的一個子集。
我想用來自每個dataframes B,C,D,E
的“已售出的副本”填充dataframe A
,以便dataframe A
的單個表上的 AZ 副本已售出。
但是,我嘗試從 B、C、D、E 到 A 的每個分配都將 A 的已售副本字段顯示為 NaN。
對於 B 中與 A 中的 id 匹配的每個 id,在 A 中的“已售出的副本”字段中寫入 B 中的已售出的副本字段的值,執行此分配的正確方法是什么?
您可以 concat B,C,D,E 然后與 A 合並。見下文。 如果 B,C,D,E 包括其他值,除了那些“已售出”不是 nan 的值,您可以過濾它們(在這種情況下讓我知道)。
A.merge(pd.concat([B,C,D,E]), on='id')
從這個結果中,只需 select 列,以獲得最終所需的 output
試試這個,這是對@IoaTzimas 答案的更新
A = A.merge(pd.concat([B,C,D,E]), on='id', how='left')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.