您可以使用sort_index
以下方式对列进行排序:
df1.sort_index(axis=1) == df2.sort_index(axis=1)
这将评估为所有True值的数据框。
正如@osa所说,这对于NaN来说是失败的,并且也不是特别健壮,因此在实践中可能建议使用类似于@quant的答案(注意:如果有问题,我们要布尔而不是加注):
def my_equal(df1, df2):
from pandas.util.testing import assert_frame_equal
try:
assert_frame_equal(df1.sort_index(axis=1), df2.sort_index(axis=1), check_names=True)
return True
except (AssertionError, ValueError, TypeError): perhaps something else?
return False