在python中,如何将一个数据帧中缺少的列条目替换为另一个数据帧中的条目?

在python中,如何将一个数据帧中缺少的列条目替换为另一个数据帧中的条目?,python,pandas,dataframe,replace,Python,Pandas,Dataframe,Replace,有两个数据帧df1和df2。df1中的两列是A和B。B中缺少值。对于df1中B中缺少的值,df2中有条目,其列是A和B(df2中的记录仅是df1中B中缺少的记录)。我想用df2中相应的B条目替换df1中缺少的B值 编辑: df1 = pd.DataFrame({'A': [1,2,3,4,5,6,7,8], 'b': [101,123,np.nan,678,np.nan,672,np.nan,786], 'C': ['ABC', 'DER', 'ERC','DFE','HJI','JKL','S

有两个数据帧df1和df2。df1中的两列是A和B。B中缺少值。对于df1中B中缺少的值,df2中有条目,其列是A和B(df2中的记录仅是df1中B中缺少的记录)。我想用df2中相应的B条目替换df1中缺少的B值

编辑:

df1 = pd.DataFrame({'A': [1,2,3,4,5,6,7,8], 'b': [101,123,np.nan,678,np.nan,672,np.nan,786], 'C': ['ABC', 'DER', 'ERC','DFE','HJI','JKL','SDH',np.Nan]})

df2 = pd.DataFrame({'A': [3,7], 'B': [563,785]})
所需O/p:

op = pd.DataFrame({'A': [1,2,3,4,5,6,7,8], 'b': [101,123,563,678,np.nan,672,785,786], 'C': ['ABC', 'DER', 'ERC','DFE','HJI','JKL','SDH',np.Nan]})
使用,向左合并列
A
上的数据帧
df1
df2
,然后使用从列
b
中的值填充列
b
中缺少的值:

df = pd.merge(df1, df2, on='A', how='left')
df['b'] = df['b'].fillna(df.pop('B'))
结果:

# print(df)
   A      b    C
0  1  101.0  ABC
1  2  123.0  DER
2  3  563.0  ERC
3  4  678.0  DFE
4  5    NaN  HJI
5  6  672.0  JKL
6  7  785.0  SDH
7  8  786.0  NaN
使用,向左合并列
A
上的数据帧
df1
df2
,然后使用从列
b
中的值填充列
b
中缺少的值:

df = pd.merge(df1, df2, on='A', how='left')
df['b'] = df['b'].fillna(df.pop('B'))
结果:

# print(df)
   A      b    C
0  1  101.0  ABC
1  2  123.0  DER
2  3  563.0  ERC
3  4  678.0  DFE
4  5    NaN  HJI
5  6  672.0  JKL
6  7  785.0  SDH
7  8  786.0  NaN

请共享数据帧的示例和您需要的准确预期输出。如上所述,共享示例数据帧。除此之外,我认为您需要
df1.fillna(df2)
。当然..我已经更新了输入和输出示例。请共享数据帧示例和您需要的准确预期输出。如上所述,共享示例数据帧。除此之外,我认为您需要
df1.fillna(df2)
。当然..我已经为响应更新了示例输入和输出hanks。但是在合并操作之后,我得到了太多的记录。那么,你能解释更多吗?根据你在问题中提供的数据,这应该有效。谢谢你的回答。但是在合并操作之后,我得到了太多的记录。那么,你能解释更多吗?根据你在问题中提供的数据,这应该是可行的。