python - 我怎样才能只比较数据框的模式?

标签 python pandas dataframe

正如标题所说,我只想比较两个数据框的数据类型和列名是否相同。我不关心值是否相等。

根据我已经尝试过的,.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/

相关文章:

python - 从宽到长返回空输出 - Python 数据框

python - Pandas 数据框合并行

python - 脉冲宽度读取器每次打印相同的值

python - 如何通知 Python/Tornado 客户端已关闭选项卡/浏览器?

python Pandas : Take Rows in my Column and categorize it as 1 Row?

python - 通过 Pandas 中的坐标检查点是否在 3D Box 中

python - 获取数据框中n个最大值的行和列名称

python - 找出所有能整除一个数的数

python - 在python中用pandas groupby绘图,多幅图

r - 在向量上过滤数据帧