我使用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的解决方案是什么?
非常感谢您提前
答案 0 :(得分:1)
我想如果你想将“nan”值表示为空字符串,最好的方法是在源代码中替换它们
df.fillna('')
然后保存。
P.S。但请注意SPSS用于处理缺失数据的方法。这些设置位于文件的标题中。