簡體   English   中英

在特定列上設置與另一個 dataframe 匹配的 pandas dataframe 的值

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

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