首页 > 解决方案 > 如何使用 Python 在 SPSS 中设置可变宽度和小数?

问题描述

我正在尝试使用 SavReaderWriter 操作一些 .sav 文件。我已经拥有的是:

with savReaderWriter.SavReader(dirIn, ioUtf8 = True) as reader:
    df = pd.DataFrame(reader.all(), columns = [s for s in reader.header])
    varLabels = reader.varLabels
    varTypes = reader.varTypes
    valueLabels = reader.valueLabels
    varWidth = reader.varWids # <------------- This guy
    varMeasure = reader.measureLevels
    varAlignments = reader.alignments
    varColumnWidths = reader.columnWidths
    varMissingValues = reader.missingValues

和:

with SavWriter(savFileName = dirOut,
               varNames = varNames,
               varTypes = varTypes,
               varLabels= varLabels,
               valueLabels = valueLabels,
               measureLevels = varMeasure,
               columnWidths = varColumnWidths,
               alignments = varAlignments,
               missingValues = varMissingValues,
               ioUtf8=True
              ) as writer:

    for record in records:
        writer.writerow(record)

问题是,在使用 SavWriter 部分时,我不知道如何设置在第一个代码处读取 sav 时获得的可变宽度。有谁知道我能做什么?

标签: pythonpython-3.xspss

解决方案


我真的让它工作了!

首先,我必须在阅读 .sav 时获取格式:

varFormats = reader.formats

然后在打开 savWriter 时添加这个参数:

formats = varFormats

Kind让我的方式,因为文档没有太大帮助,但让我知道这些格式是如何工作的: https ://pythonhosted.org/savReaderWriter/index.html#formats


推荐阅读