2014-09-30 88 views
4

我有一个将XML文件读入数组(以我创建的CSV格式)的python脚本。我希望能够直接使用该数据而不是保存到文件。是否有可能在Python中为SPSS创建数据对象

这可能吗?所以它就像创建一个Var.File节点,而不是指向一个文件,它正在采集我已经拉入的数据。

例如。数据[0] =“1,A,B,C”#单行所有文件。

+1

这是这里的主题,但国际海事组织将在SO的主题。我写了一篇相关的博客文章,http://andrewpwheeler.wordpress.com/2014/09/19/turning-data-from-python-into-spss-data/ – 2014-09-30 13:14:53

+0

噢,好的。谢谢。随时关闭。您的博客看起来完全像我在找的东西。如果你想发布它作为答案,让我知道。 – 2014-09-30 13:23:15

回答

3

简而言之,您可以直接在SPSS语法文件中将Python程序粘贴到BEGIN PROGRAMEND PROGRAM块之间。然后,您可以定义一个SPSS数据集并使用Python代码块将案例附加到该数据集。

这可能很好,它可以逐行完成,因此可以在理论上处理相当大的文件。即使使用小文件,它也应该比写和读csv文件更快。下面的例子取自a blog post I wrote关于这个问题:

BEGIN PROGRAM Python. 
import spss 

MyData = [(1,2,'A'),(4,5,'B'),(7,8,'C')] #make a list of lists for the data 

spss.StartDataStep()     #start the data setp 
MyDatasetObj = spss.Dataset(name=None) #define the data object 
MyDatasetObj.varlist.append('X1',0) #add in 3 variables 
MyDatasetObj.varlist.append('X2',0) 
MyDatasetObj.varlist.append('X3',1) 
for i in MyData:      #add cases in a loop 
    MyDatasetObj.cases.append(i) 
spss.EndDataStep() 
END PROGRAM. 
相关问题