使用python代码生成SPSS数据文件频率时出错

2024-09-30 18:18:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用下面的代码来获取SPSS数据文件中每个变量的频率,但有人会建议出现错误。求你了

def calculateFrequency(sav):
    """ This function returns a frequency count for each variable in
    the spss data file """
    freqs = {}
    for lino, line in enumerate(sav):
        if lino == 0:
            varNames = line
        else:
            for varName in varNames:
                value = line[varNames.index(varName)]
                value = "(missing)" if value == "" else value
                try:
                    freqs[varName]
                except KeyError:
                    freqs[varName] = {}
                try:
                    freqs[varName][value] += 1
                except KeyError:
                    freqs[varName][value] = 1
    return freqs

def main(savFileName = "C:/Projects/Regression/Linear/Whiff_Deodorant_StackedData.sav"):
    with SavReader(savFileName) as sav:
        freqs = calculateFrequency(sav)
    for var, values in freqs.iteritems():
        print var, 10 * "*", var.upper(), 10 * "*"
        for val, freq in values.iteritems():
           print val, "--", freq

我得到一个错误:

print var, 10 * "*", var.upper(), 10 * "*"
        ^
SyntaxError: invalid syntax

Tags: inforifvaluevardef错误line
1条回答
网友
1楼 · 发布于 2024-09-30 18:18:47

在python 3中,需要圆括号打印:

print (var, 10 * "*", var.upper(), 10 * "*")

下一次印刷也是如此

print (val, " ", freq)

您可能还想看看python字符串格式。 有不同的选项,取决于版本,但是考虑查找^ {< CD1>}函数:

print ("{}   {}".format(val,freq))

相关问题 更多 >