【问题标题】:How I can mark the variables from a database (SPSS) with missing values, using Python?如何使用 Python 将数据库 (SPSS) 中的变量标记为缺失值?
【发布时间】:2018-08-15 16:00:21
【问题描述】:

也许有人可以帮助我一些提示 :) 我们正在尝试标记被过滤的变量,以便我们可以使用它们构建特定的语法。如果我按以下方式运行该部分,则会出现错误:

    BEGIN PROGRAM.
    import spss
    newvarlist=[]
    dataCursor=[]
    oneVar=[]
    miss=[]
    counter=[]
    vars=spss.GetVariableCount()

    for i in range(vars):
        dataCursor[i]=spss.Cursor()
        oneVar[i]=dataCursor.fetchall()
        miss[i]=str(oneVar)
        counter[i]=miss.count('None')
        if counter[i]>0 :
            newvarlist.append(oneVar[i])
        dataCursor.close()
    print oneVar
    print counter
    print newvarlist
    #dataCursor.CommitCase()

    END PROGRAM.

下面是我得到的错误:

Traceback(最近一次调用最后一次):文件“”,第 10 行,in IndexError: 列表赋值索引超出范围

你能帮帮我或给点建议吗?如何创建包含从 SPSS 数据库中过滤的变量的列表?

非常感谢您的帮助!

【问题讨论】:

  • 您可能需要编辑问题以帮助了解您要问的是什么。标题似乎与问题的第一段无关。请注意,代码存在多个问题,除了 IndexError 之外,我无法猜测它试图做什么。一方面,将游标分配给dataCursor[i],然后像使用游标对象一样使用整个数组(dataCursor)是行不通的。

标签: python spss


【解决方案1】:

您的列表是空的。在您尝试分配值的任何ith 位置都没有元素。请改用dataCursor.append(spss.Cursor())

其他空列表类似。

或者,您可以在初始化时使用星号 (*) 运算符将每个列表填充为 None。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-24
    • 1970-01-01
    • 2017-08-10
    • 2017-09-17
    • 2016-05-06
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    相关资源
    最近更新 更多