正如标题所说,我只想比较两个数据框的数据类型和列名是否相同。我不关心值是否相等。
根据我已经尝试过的,.equals() 也比较值,如果我尝试比较空数据帧,它们总是导致不相等(另外,我失去了 dtypes 属性)。
任何帮助将不胜感激。
最佳答案
比较由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
关于python - 我怎样才能只比较数据框的模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54743052/