如何将Pandas数据帧保存为.sav文件

3

我有以下的数据框

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

我正在尝试将这个数据框保存为一个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]

有什么想法吗?

2个回答

6

2

.writerows 无法接受输入。您需要将数据框转换为np.array才能写入。

最初的回答: 需要将数据框转换为np.array后才能使用 .writerows 写入。
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)

SavWriter 是从哪里导入的?我猜测是这个包:https://pythonhosted.org/savReaderWriter/#module-savReaderWriter,但你没有导入它。为什么导入了 pandas 和 numpy,却没有导入 savwriter?我感觉我漏掉了一些显而易见的东西... - baxx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接