我使用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数据集完全一致。这个数据集会出现什么问题。需要帮助。
答案 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