2016-05-11 7 views
1

私は次のコードでPythonのパンダのデータフレームからSPSSファイルを保存するためにsavReaderWriterモジュールを使用します。pandas dataframeからSPSSシステム(sav)ファイルを保存する際に、SYSTEMが値を欠いていますか?

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ファイルに空の文字列変数が「ナン」の値を持っているということです。 文書のsavWriterのデフォルトオプションはmissingValues = Noneですが、 "None"を "またはその他の文字列に変更するとジョブは実行されません。 ナノの代わりに空の文字列を持つのはどうでしょうか?

は、私はあなたが空の文字列として「ナン」の値を表現したい場合には最良の方法は

df.fillna('') 

dfを元にそれらを交換し、その後保存していると思い事前

答えて

1

にありがとうございました。

P.S.しかし、欠落したデータを処理するためにSPSSが使用するアプローチに注意してください。これらの設定はファイルのヘッダーにあります。

+0

これはすでに試みたアプローチですが、少なくとも1つの欠損値を持つすべての数値変数が文字列になるという副作用があります。ありがとうございます – ibarant

+0

@ibarantしたがって、欠落しているデータの値としてemty文字列を使用する必要はありません。これらの値は、エクスポートしたSPSSファイルのヘッダに記述する必要があります。 – knagaev

+0

その構文は何でしょうか?私はSPSSファイルを読むためのヘッダーオプションを見つけましたが、書き込みはできませんでした。あなたの助けが大変ありがとうございます。ありがとうございました! – ibarant

関連する問題