元对象包含您要查找的元数据。最有用的属性可能是:
- meta.column_names_to_labels :它是一个字典,列名与您在 pandas 数据框中的列名相同,标签意味着对每列含义的更长解释
print(meta.column_names_to_labels)
- meta.variable_value_labels :一个字典,其中键是列名,值是字典,其中键是您在数据框中找到的值,值是值标签。
print(meta.variable_value_labels)
例如,如果您有一个值为 1 和 2 的“性别”列,您可以获得:
{“性别”:{1:“男性”,2:“女性”}}
这意味着值 1 是男性和 2 女性。
如果您传递参数 apply_value_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_ranges 会告诉您缺少 5 和 6价值观。 Variable_value_labels 将为您提供“未回答”和“人不在家”标签。
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