如何在从pandas数据帧保存SPSS系统(sav)文件的同时将SYSTEM缺失值从nan重新编码为空?

时间:2016-05-11 16:52:49

标签: python pandas spss

我使用savReaderWriter模块使用以下代码从python pandas dataframe保存SPSS文件:

import savReaderWriter as srw
savFileName = 'Outfile name.sav'

records = map(list, df.values)

varNames = list(df.columns)
varTypes = {}

for n, values in enumerate(records[0]):
  varName = varNames[n]
  if df.dtypes[n] == 'float64':
      varTypes[varName] = 0
  else:
      varTypes[varName] = 255

with srw.SavWriter(savFileName, varNames, varTypes, ioUtf8=True) as writer:
    writer.writerows(records)

问题是SPSS文件中的空字符串变量具有“nan”值。 在savWriter的文档默认选项是 missingValues = None ,但是将“None”更改为''或任何其他字符串不能完成这项工作。 有空字符串而不是nan的解决方案是什么?

非常感谢您提前

1 个答案:

答案 0 :(得分:1)

我想如果你想将“nan”值表示为空字符串,最好的方法是在源代码中替换它们

df.fillna('')

然后保存。

P.S。但请注意SPSS用于处理缺失数据的方法。这些设置位于文件的标题中。