。我不担心价值观是平等的。
从我已经尝试过的情况来看,.equals()也比较值,如果我尝试比较空数据帧,它们总是导致不相等(而且,我失去了dtypes属性)。
任何帮助都将不胜感激。

最佳答案

Compare Series created by DataFrame.dtypes:

df1.dtypes.equals(df2.dtypes)

样品:
df1 = pd.DataFrame({
        'A':list('abcdef'),
         'B':[4,5,4,5,5,4],
         'F':list('aaabbb')
})

df2 = pd.DataFrame({
        'A':list('abcdef'),
         'B':[4,5,4,5,5,4],
         'F':list('aaabbb')
})

df3 = pd.DataFrame({
        'A':list('abcdef'),
         'B':[4.0,5,4,5,5,4],
         'F':list('aaabbb')
})

df4 = pd.DataFrame({
        'A':list('abcdef'),
         'C':[4,5,4,5,5,4],
         'F':list('aaabbb')
})

print (df1.dtypes.equals(df2.dtypes))
True

print (df1.dtypes.equals(df3.dtypes))
False

print (df1.dtypes.equals(df4.dtypes))
False

10-07 17:46