簡體   English   中英

Pandas 合並數據幀並僅從第二個 Dataframe 更新一列

[英]Pandas merge dataframes and update Only one Column from Second Dataframe

我能夠解決這個問題,但是需要一個具有以下約束的pythonic解決方案:

第一個示例數據框看起來像

 df1

      A     B      C    D      E      F 

      a    NULL    8    7      uu    qw
      b    hag     9    10     lq    ss
      c    ja     11    2      sa    lo
      d    NULL   17    1      fg    

第二個 dataframe 看起來像

df2   

      A     B      C    D      E      F 

      a    YES     8    7      uu    qw
      b    PLH     9    10     lq    ss
      c    NO     11    2      sa    lo
      e    SAM    17    1      fg    

因此,我想合並列 A、C DE 和 F 上的數據框。但是,我想用第二個 dataframe (df2) 中的值替換列 B。 所以 output 應該如下所示:

   final_df 


      A     B      C    D      E      F 

      a    YES     8    7      uu    qw
      b    PLH     9    10     lq    ss
      c    NO     11    2      sa    lo

我能夠合並數據幀,但是得到兩個 B 列並且必須使用刪除一個 B_x 列,然后重新排列這些列以獲得最終的 Dataframe。 有一個更好的方法嗎? 我問的原因是我有接近 1000 列並且重新排列列正在成為一個問題,因為在這種情況下,我必須明確地編寫所有列,這是一個禁忌。

任何幫助將不勝感激。 提前致謝。

如果需要在df1中輸出相同的列,並在兩個 DataFrames 中更新相同的列,如B ,則使用suffixes參數為df1中的B列添加_ ,並為相同的順序和相同的列添加DataFrame.reindex ,如df1.columns中的 df1.columns:

df = (df1.merge(df2, on=['A','C','D','E', 'F'], suffixes=('_',''))
         .reindex(df1.columns, axis=1))

暫無
暫無

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

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