繁体   English   中英

使用 python 编写 SPSS pyreadstat 时将数字数据转换为十进制

[英]numeric data converted to decimal while writing SPSS pyreadstat using python

当我们使用 python 合并 2 个 SPSS 文件时,我遇到了问题,当我们读取 SPSS 数据文件时,所有数字数据都转换为十进制。 我尝试使用 panda 将其转换为 int64,但是当尝试保存合并文件时,它又转换回十进制。

import pyreadstat

import pandas as pd

df, meta = pyreadstat.read_sav('SWAN_p1.sav', apply_value_formats=False, disable_datetime_conversion=True, user_missing=True)

df_2, meta2 = pyreadstat.read_sav('SWAN_p2.sav', apply_value_formats=False, disable_datetime_conversion=True, user_missing=True)

frames = [pd.DataFrame(df), pd.DataFrame(df_2)]
data_final = pd.concat(frames)

c_labels = meta.column_labels

v_labels = meta.value_labels

v_type = meta.original_variable_types

measures = meta.variable_measure

storage_width = meta.variable_storage_width

variable_value_labels = meta.value_labels

variable_l = meta.variable_value_labels

pyreadstat.write_sav(data_final, "SWAN_Merged_v3.sav", variable_measure=measures, column_labels=c_labels, variable_value_labels=variable_l)

SPSS只有一种类型的数字数据,一种有十进制,没有Integer类型,因此总是保存到SAV,你正在将pandas中的任何数字数据转换为十进制,当然当你读回它时它将是十进制的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM