【问题标题】:how to save a pandas dataframe into a sav file如何将熊猫数据框保存到 sav 文件中
【发布时间】:2019-02-21 12:22:36
【问题描述】:

我有以下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]

有什么想法吗?

【问题讨论】:

    标签: python python-3.x pandas spss


    【解决方案1】:

    你可以使用pyreadstat:

    import pyreadstat
    
    pyreadstat.write_sav(mc_all, savFileName)
    

    更多信息在这里:

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

    【讨论】:

      【解决方案2】:

      .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)
      

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-06
      • 1970-01-01
      • 2017-04-10
      • 1970-01-01
      • 2017-04-25
      • 2018-12-19
      • 1970-01-01
      • 2018-05-03
      相关资源
      最近更新 更多