将 spss 文件转换为熊猫时更改了标头



我使用 SavReaderWriter 将 spss 文件转换为熊猫。但是在那之后,我的变量名称在第一行,如 b'variable_name'。如何只选择变量名称?

data=spss.SavReader('file name', returnHeader=True)
df= pd.DataFrame(data)
df.loc[0]=df.loc[0].apply(lambda x: x[2:len(x)-1])

但是,结果是 b'riable_nam'(b'' 格式仍然存在(。 我应该怎么做才能纯化变量名?

看看这是否有效(没有看到数据,我在这里猜测(

df.loc[0]=df.loc[0].apply(lambda x: x.str.split("‘")[1], axis=1)

SavReaderWriter 在读取 SPSS 元数据时返回字节。
标签示例:b'Data id'.
python 中的 var 类型返回:<class 'bytes'>
因此解决方案是对其进行解码,示例代码如下:

with rw.SavHeaderReader("tesFile.sav", ioUtf8=False) as header:
metadata = header.all()
varLabels = metadata.varLabels
for var, lab in varLabels.items():
decodedLabel = lab.decode("utf-8")

最新更新