AttributeError:导入SAS数据集时,'bool'对象没有属性'sum'

时间:2016-08-12 04:35:01

标签: python import sas anaconda attributeerror

我使用pandas.read_sas在Anaconda Spyder(Python 3.5)中导入大约7 GB的巨大sas数据集。代码如下所示:

import pandas as pd
hugedata = pd.read_sas('K:/HugeData.sas7bdat')

但我收到以下错误:

Traceback (most recent call last):

  File "<ipython-input-46-31acb10b0e92>", line 1, in <module>
    hugedata = pd.read_sas('K:/ERA/Credit Risk Estimates/PRAM/NW_RM_SUB_FCLY_M_HIST.sas7bdat')

  File "C:\Users\l086276\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\sas\sasreader.py", line 61, in read_sas
    return reader.read()

  File "C:\Users\l086276\AppData\Local\Continuum\Anaconda3\lib\site-packages\pandas\io\sas\sas7bdat.py", line 579, in read
    nd = (self.column_types == b'd').sum()

AttributeError: 'bool' object has no attribute 'sum'

只是想知道为什么对sas7bdat.py函数的内部调用在导入此数据集时会产生错误,而其工作与其他sas数据集完全一致。这个数据集会出现什么问题。需要帮助。

1 个答案:

答案 0 :(得分:3)

我发现sas7bdat包在大熊猫因上述消息失败的情况下起作用。

from sas7bdat import SAS7BDAT

def load_sas(sasfile,
             encoding="utf8",
             encoding_errors="replace"):

    with SAS7BDAT(sasfile, encoding=encoding,encoding_errors=encoding_errors) as sas:
        sas = iter(sas)
        columns = [c for c in next(sas)]
        df = pd.DataFrame(sas, columns=columns)
        return df