【发布时间】:2021-02-11 03:58:15
【问题描述】:
所以在我的工作中,我们必须使用 .sav 文件(SPSS 文件)。出于标准化目的的原因。 我很好奇我是否可以将 SPSS/.sav 文件作为 csv 读入 pandas 并基本上绕过将其作为 sav 读入?
因此,例如,当我读入文件然后转换为 csv 时,我通常会这样做:
df = pd.read_spss('filepath.sav')
df.to_csv('filepath.csv')
df = pd.read_csv('filepath.csv')
这是极其低效且缓慢的,因为读取 .sav 文件是一个缓慢/耗时的过程。
所以我想知道的是,我可以将 .sav 文件读取为 .csv 文件而无需先将其作为 .sav 读取吗?
【问题讨论】:
-
目前存在一个关于读取 spss 文件性能的未解决问题:github.com/Roche/pyreadstat/issues/80。请提供示例文件以进行调查。否则,我认为您的要求是不可能的:spss 和 csv 文件非常不同,因此适用于 csv 的程序对您没有帮助。您可以做的是将 spss 文件保存为 csv 副本并将 csvs 用于您的工作。
-
pandas read_spss 在后台使用 pyreadstat。 1.0.3 版本的 pyreadstat 提高了性能,因此您可以再次尝试将它 git 到 pandas.read_spss。此外 pyreadstat 现在有一个新版本 read_file_multiprocessing 可以在并行进程中读取文件,从而使事情变得更好。要使用后者,您需要使用 pyreadstat,因为 pandas 不会公开该功能。