我有两个具有相同列的数据框。第二列是第一列索引值的子集,但某些列的字段为空,其他列的信息已更新。
例子:
数据分析:
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
