如何在Python中阅读SPSS aka(.sav)

2024-09-27 07:32:31 发布

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

这是我第一次使用Jupyter笔记本分析调查数据(.sav文件),我想以一种可以显示元数据的方式阅读它,这样我就可以将答案与问题联系起来。我在这个领域完全是个新手,所以非常感谢您的帮助

import pandas as pd
import pyreadstat
df, meta = pyreadstat.read_sav('./SimData/survey_1.sav')
type(df)
type(meta)
df.head()

请lmk如果有一个额外的步骤需要我能够看到元数据


Tags: 文件数据答案importpandasdftype方式
1条回答
网友
1楼 · 发布于 2024-09-27 07:32:31

元对象包含您正在查找的元数据。最有用的属性可能是:

  • meta.column_names_to_labels:这是一本字典,其中列的名称与数据框中的标签相同,意味着对每个列的含义有更长的解释
print(meta.column_names_to_labels)
  • meta.variable_value_labels:一个dict,其中键是列名,值是dict,其中键是数据帧中的值,值是值标签
print(meta.variable_value_labels)

例如,如果“性别”列的值为1和2,则可以得到: {“性别”:{1:“男性”,2:“女性”} 这意味着值1为男性,值2为女性。 如果传递参数apply\u value\u formats,则可以从头开始获取这些标签:

df, meta = pyreadstat.read_sav('survey.sav', apply_value_formats=True)

您还可以随时使用pyreadstat.set_value_labels将这些值格式应用于数据帧,该标签返回带有标签的数据帧副本:

df_copy = pyreadstat.set_value_labels(df, meta)
  • meta.missing_ranges:你会得到缺失值的标签。比如说,在调查的某个变量中,他们编码了1表示是,2表示否,然后混淆了值,5表示没有回答,6人不在家。默认情况下,当你读取数据帧时,你会得到值1、2和NaN(缺失)而不是5和6。您可以通过参数user_missing获得5和6,meta.missing_范围将告诉您5和6是缺失值。变量_值_标签将为您提供“未回答”和“人员不在家”标签
df, meta = pyreadstat.read_sav("survey.sav", user_missing=True)
print(meta.missing_ranges)
print(meta.variable_value_labels)

这些是对您的案例有用的潜在信息片段,不一定所有这些片段都会出现在您的数据集中

更多信息请参见:https://ofajardo.github.io/pyreadstat_documentation/_build/html/index.html

相关问题 更多 >

    热门问题