如何将PANDAS数据框保存到SAV文件中



我有以下dataframe

import pandas as pd
mc_all = pd.DataFrame({'col_1': [0,1,1,2],
'col_2' : ['france','france','uk','uk']})

我正在尝试将此dataframe保存到sav文件

args = ( list(mc_all.columns), dict(zip(list(mc_all.columns),[0]*len(list(mc_all.columns)))) )
with SavWriter('mc_all.sav',*args) as writer:
    writer.writerows(mc_all)

据此行不通。它引发了一个错误:

error.spssioError:提交标题的问题[spss_invalid_handle]

有什么想法?

您可以使用pyreadstat:

import pyreadstat
pyreadstat.write_sav(mc_all, savFileName)

更多信息在这里:

https://github.com/roche/pyreadstat#writing-files

.writerows不能作为输入。您必须将数据框架转换为np.array才能编写。

import pandas as pd
import numpy as np
mc_all = pd.DataFrame({'col_1': [0,1,1,2],
                       'col_2' : ['france','france','uk','uk']})
savFileName = 'mc_all.sav'
args = (['col_1', 'col_2'], dict(col_1=0, col_2=0))
array = mc_all.values
with SavWriter(savFileName, *args) as writer:
    writer.writerows(array)

最新更新