AttributeError: bool object does not have a sum attribute when importing a SAS dataset

I am importing a huge sas dataset of about 7 GB into Anaconda Spyder (Python 3.5) using pandas.read_sas. The code looks something like this:

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

but I got the following error:

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'

Just wondering why the internal call to the sas7bdat.py function causes an error while importing this dataset, while it works great with other sas datasets. What could go wrong with this dataset. Need help please.

+4
source share
1 answer

, sas7bdat , pandas .

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
+3

Source: https://habr.com/ru/post/1650995/


All Articles