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
可能不同。