Python PANDES df.fillna-使用正确的值在外部联接后填充NAN

Python PANDES df.fillna-使用正确的值在外部联接后填充NAN,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个数据帧,共享一些列。 我正试图: 1) 将两个数据帧合并在一起,即添加不同的列: diff = df2[df2.columns.difference(df1.columns)] merged = pd.merge(df1, diff, how='outer', sort=False, on='ID') 到目前为止,一切正常 2) 现在,将NaN值替换为df2 merged = merged[~merged.index.duplicated(keep='first')] merged.f

我有两个数据帧,共享一些列。
我正试图:

1) 将两个数据帧合并在一起,即添加不同的列:

diff = df2[df2.columns.difference(df1.columns)]
merged = pd.merge(df1, diff, how='outer', sort=False, on='ID')
到目前为止,一切正常

2) 现在,将
NaN
值替换为
df2

merged = merged[~merged.index.duplicated(keep='first')]
merged.fillna(value=df2)
就在这里,我得到:

pandas.core.indexes.base.InvalidIndexError

我没有任何重复项,也找不到任何导致此问题的信息。

如果行数因合并而更改,则fillna有时会导致错误。试试下面的方法

merged.fillna(df2.groupby(level=0).transform("mean"))

这个问题的解决方法是使用不同的方法-
这样,丢失数据的每一行都会填充来自另一个数据帧的数据,如图所示

您可以与
Nan
共享您的数据帧样本吗?您到底想做什么?我假设,
合并的
data.frame的索引中有一些值不在
df2
data.frame中?不幸的是,这不起作用。我仍然会犯同样的错误。