Python 比较两个数据帧并显示差异会产生错误

Python 比较两个数据帧并显示差异会产生错误,python,pandas,dataframe,Python,Pandas,Dataframe,我可以通过比较两个数据帧来找到差异,并将差异连接到一个新的数据帧中,但当其中一个数据帧中缺少值时会出现问题,并生成一个错误:ValueError:只能比较标记相同的系列对象我认为标头索引有问题。如果你能帮我,那就太好了 df1 have one missing value at column 1980 df1 Country 1980 1981 1982 1983 1984 Bermuda 0.00687 0.00727 0.00971

我可以通过比较两个数据帧来找到差异,并将差异连接到一个新的数据帧中,但当其中一个数据帧中缺少值时会出现问题,并生成一个错误:
ValueError:只能比较标记相同的系列对象
我认为标头索引有问题。如果你能帮我,那就太好了

df1 have one missing value at column 1980 

df1
    Country 1980    1981    1982    1983    1984
    Bermuda         0.00687 0.00727 0.00971 0.00752
    Canada  9.6947  9.58952 9.20637 9.18989 9.78546
 Greenland       7  0.00746 0.00722 0.00505 0.00799
    Mexico  3.72819 4.11969 4.33477 4.06414 4.18464



 df2
    Country 1980    1981    1982    1983    1984
    Bermuda 0.77777 0.00687 0.00727 0.00971 0.00752
    Canada  9.6947  9.58952 9.20637 9.18989 9.78546
  Greenland 0.00791 0.00746 0.00722 0.00505 0.00799
    Mexico  3.72819 4.11969 4.33477 4.06414 4.18464


def process_df(df):
    res = df.set_index('Country').stack()
    res.index.rename('Column', level=1, inplace=True)
    return res

df1 = process_df(df1)
df2 = process_df(df2)
mask = (df1 != df2) & ~(df1.isnull() & df2.isnull())
df3 = pd.concat([df1[mask], df2[mask]], axis=1).rename({0:'From', 1:'To'}, axis=1)
print(df3)
我想显示缺少的值,就像空白一样,示例如下:

                            From         To
Country       Column                       
Bermuda       1980          0.77777   
Greenland     1980          0.00791       7

请记住,如果没有缺失值,代码可以正常工作,但我希望能够处理缺失值。谢谢

缺少的值是什么?一个
NaN
,一个空字符串,一个空格…?您应该用仍在生成的
np.NaN
@HaleemurAli替换空格error@RafaelC是一个空白,如果查看df1,则在第1980列中缺少一个值,请检查
d类型
。如果缺少值,
1980
列的
dtype
可能不同。