首页 > 解决方案 > 在 Python 中使用元数据格式化数据库的列

问题描述

我正在使用一个最初是 SPSS '.sav' 格式的数据库。该数据库包含不优化内存使用的信息列(即,字符串变量留有空格,在数字中也有小数,应该是整数)。我所做的过程是清理数据库(更正格式),然后将它们导出到一个平面文本文件中,以便在文本编辑器中进行处理。文本编辑器并没有那么强大,因此正确分配列和格式是一个非常重要的过程,以及减少内存使用量。我创建了一个程序来使用 Python(pyreadstat 库)减少内存使用量。该程序有一个限制,它只考虑在数据库中找到的列的值,而不考虑也从 SPSS 文件导入的元数据。

我使用初步数据在文本编辑器中继续编程并节省时间,直到获得最终数据。我在这个过程中发现了一个潜在的问题,就是最终数据中的值可能与初步数据的格式不对应。例如,使用数据库中的变量年龄。可能会发生在初步数据中最老的人是 99 岁,因此列格式是两位数的整数,但是在最终数据中可能出现 100 岁的主题,然后列的格式会改变它将是一个三位数的整数。这可能会更改我在文本编辑器中格式化的所有内容,因为数据库的列以错误的方式被拉取或提取。解决这个问题的一种方法是使用数据库元数据。在元数据中,有我数据库变量的所有值和标签,并且这些信息被客户端仔细检查过。然后,如果我使用它,内存使用减少将是最佳的。

我的问题是,是否有任何方法可以使用我从 SPSS 文件中导入的元数据来格式化 Python 程序中的数据库列?另外,这是解决此问题的最有效方法,还是有其他更合适的程序来完成此任务?

非常感谢您的帮助,让这个程序正常工作或从更有经验的人那里获得一些关于该主题的想法将为我节省大量工作时间。

标签: pythonmetadataspsssurveydata-munging

解决方案


推荐阅读