我正在按行名称比较2个数据框,我想得到与例子不匹配的行的名称:
check = sum(df1.index!=df2.index)
if check:
raise TypeError("Not Match")
else:
print("All OK")
当索引不匹配时,我想打印不匹配的行的第一个实例。我已尝试使用如下所示的print语句,但它没有执行。
check = sum(df1.index!=df2.index)
if check:
print(df1.index)
raise TypeError("Not Match")
else:
print("All OK")
答案 0 :(得分:2)
声明 -
df1.index != df2.index
返回bools
的numpy数组。让我们暂时保留这个。工作可能需要稍作改动 -
m = df1.index.values != df2.index.values
要在True
中获取m
(不匹配)的计数,请致电sum
-
if m.sum():
raise TypeError(...)
要获得第一个不匹配的实例,使用m
索引:
print(df1[m].iloc[0])
感谢MaxU,使用argmax
-
print(df1[m.argmax()])