我有以下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)
根据this,但是它不起作用。它会引发错误:
error.SPSSIOError:提交标头[SPSS_INVALID_HANDLE]时出现问题
有什么想法吗?
答案 0 :(得分:1)
.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)
答案 1 :(得分:0)
您可以使用pyreadstat:
import pyreadstat
pyreadstat.write_sav(mc_all, savFileName)
更多信息在这里: