gpt4 book ai didi

python-3.x - 将 .sav 文件转换为 Pandas 数据框

转载 作者:行者123 更新时间:2023-12-03 20:28:21 25 4
gpt4 key购买 nike

我正在编写数据检查器来查看 spss 文件,需要以编程方式处理不同的检查。第一步是访问 spss 文件,将其转换为 pandas 数据帧并从那里运行我的检查。我发现这样做的唯一方法是通过 RPY2。不幸的是,我对 R 知之甚少,无法获得以下任一解决方案。任何帮助/文献将不胜感激。
我从其他帖子中提取了一些东西并创建了这个:
使用 RPY2

from rpy2.robjects import pandas2ri
from rpy2.robjects import r
from pathlib import Path
import pyreadstat
pandas2ri.activate()

w = r('foreign::read.spss("%s", to.data.frame=TRUE)' % filename)
df = pandas2ri.ri2py(w)
df.head()
w.head()
错误:
rpy2.rinterface_lib.embedded.RRuntimeError: Error in foreign::read.spss("path to test.sav",  : 
error reading system-file header
使用 pyreadstat (这给了我列,但是当我尝试获取基础数据时出错)
    meta = pyreadstat.read_sav(filename, metadataonly=True)
cols = [x for x in meta[0]]
df, meta = pyreadstat.read_sav(filename, usecols=cols)
print(df)
错误:
pyreadstat._readstat_parser.PyreadstatError: STRING type with value 4/23/19 17:50 with date type
更新:
现在使用haven但仍然出现错误:
rdf = r(f'haven::read_sav("{filename}")')
错误: ValueError: Invalid value NaN (not a number)

最佳答案

相反,您可以使用 scipy.io.readsav 库来转换 .sav文件到字典

scipy.io.readsav(file_name, idict=None, python_dict=False,
uncompressed_file_name=None, verbose=False)

然后可以轻松地将字典转换为 Pandas 数据框。

关于python-3.x - 将 .sav 文件转换为 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56029700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com