Pyd*_*man 8 python r spss rpy2 pandas
我正在寻找使用SPSS文件(.sav)pandas
.在没有SPSS程序的情况下,这是转换为.csv时典型文件的样子:
在调查前两行的含义(我不知道SPSS)时,似乎第一行包含Label
s,而第二行包含VarName
s.
当我将文件带入熊猫时:
import pandas.rpy.common as com
def savtocsv(filename):
w = com.robj.r('foreign::read.spss("%s", to.data.frame=TRUE)' % filename)
w = com.convert_robj(w)
return w
Run Code Online (Sandbox Code Playgroud)
然后执行head(),第一行(Label)丢失:
如何维护标签?
sav
文件中的标签存储在函数variable.labels
返回对象的属性中read.spss
.
您可以使用以下内容获取变量标签:
import pandas.rpy.common as com
def get_labels(filename):
w = com.robj.r('attr(foreign::read.spss("%s"), "variable.labels")' % filename)
w = com.convert_robj(w)
return w
Run Code Online (Sandbox Code Playgroud)
如果要将标签设置为数据框的列名:
import pandas.rpy.common as com
def savtocsv(filename):
w = com.robj.r('foreign::read.spss("%s", to.data.frame=TRUE)' % filename)
cols = list(com.robj.r("attr")(w, "variable.labels"))
w = com.convert_robj(w)
w.columns = cols
return w
Run Code Online (Sandbox Code Playgroud)