Skip to main content
 首页 » 编程设计

python之检查一个 Pandas Dataframe 的元素以更新另一个

2025年05月04日10lovecherry

我有两个具有相同列的数据框。第二列是第一列索引值的子集,但某些列的字段为空,其他列的信息已更新。

例子:

数据分析:

         Height    Weight   Age   Street  PhoneNumber 
 
Pete       5.2       130     33    Pine    123-456-7890 
Mary       5.0       110     34    Main    434-444-5555 
Rob        6.0       230     44    Maple   999-444-2222 
.... 

dfb:

        Height    Weight   Age   Street  PhoneNumber 
 
Pete      Nan        125     Nan    Arbor      Nan 
Rob       Nan        235     45     Nan    776-333-3222 

我想用 dfb 中的新信息更新 dfa 中的字段。如果 dfb 没有更新(该字段是 Nan),我想在 dfa 中保留原始值。

我能想到的唯一方法是按行和列进行迭代,找到dfb中的元素,然后将dfa中的相应地址设置为等于dfb 中的地址。丑。

有没有更简洁(更 pythonic)的方法来做到这一点?

提前致谢。

编辑:为清楚起见更改了 dfb。两个 dfs 没有相同的索引。 dfb 是 dfa 的子集。

请您参考如下方法:

你需要的是 combine_first 首先确保那些“Nan”真的是 np.nan:

dfb = dfb.replace('Nan',np.nan) 
dfb.combine_first(dfa) 

输出:

      Height Weight Age Street   PhoneNumber 
Pete     5.2    125  33  Arbor  123-456-7890 
Mary     5.0    110  34   Main  434-444-5555 
Rob      6.0    235  45  Maple  776-333-3222