我有主数据帧和辅助数据帧。当ID变量组合相同时,我想用辅助数据帧中的值替换主要数据帧中的值。 ID变量之一在主数据帧中具有混合数据类型。我能够解决问题,但我的解决方案似乎过于复杂,我希望这里的某个人可能能够帮助我找到更优雅的方法。
请注意,永远不需要替换ID2 ='缺少'或'indicator'= 1的行。
primary_df = pd.DataFrame(data=
{'ID1': ['XXX111','XXX111','XXX111','XXX111','YYY222','YYY222','ZZZ333','ZZZ333','ZZZ333'],
'ID2': ['0-100', -1.0, -2.0, -3.0, '0-10', -1.0,'300-400', 'Missing', '-4.0'],
'value' : [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9],
'indicator': [1,np.nan, np.nan, np.nan, 1, np.nan, 1, np.nan, np.nan]})
secondary_df = pd.DataFrame(data=
{'ID1': list(['XXX111','ZZZ333']),
'ID2': list([-3,-4]),
'value': list([0.04, 0.09])})
desired_df = pd.DataFrame(data=
{'ID1': ['XXX111','XXX111','XXX111','XXX111','YYY222','YYY222','ZZZ333','ZZZ333','ZZZ333'],
'ID2': ['0-100', -1, -2, -3, '0-10', -1,'300-400', 'Missing', -4],
'value' : [0.1, 0.2, 0.3, 0.04, 0.5, 0.6, 0.7, 0.8, 0.09],
'indicator': [1,np.nan, np.nan, np.nan, 1, np.nan, 1, np.nan]})