python - 如何仅比较数据框的架构?
问题描述
正如标题所说,我只想比较两个数据框的数据类型和列名是否相同。我不关心值是否相等。
从我已经尝试过的情况来看, .equals() 也比较值,如果我尝试比较空数据帧,它们总是导致不相等(另外,我失去了 dtypes 属性)。
任何帮助将不胜感激。
解决方案
比较Series
创建者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
推荐阅读
- git - 如何自动化功能分支合并以进行开发?
- templates - Win32编程不能包含模板头文件
- android - Android ML Kit Firebase FirebaseVisionText,`block.getCornerPoints()`总是`return null`值
- event-sourcing - 如何在事件溯源/事件中设计可否决事件
- android - Android 和 iOS 应用程序是否可以显示完全相同的字体?
- mysql - 将带有日期内容的字符串列复制到 MySQL 中的 DateTime 列
- python - 获取python中两个日期之间日期的星期数
- windows-installer - 为使用 Windows 安装程序创建的自定义文件夹文件添加写入权限
- postman - 钥匙斗篷登录页面
- javascript - Mongodb Nodejs 从现有数据中生成测试数据