Issue iterating with pd.read_sas #13654

Closed
andersbogsnes opened this Issue Jul 14, 2016 · 2 comments

Comments

Projects
None yet
3 participants

andersbogsnes commented Jul 14, 2016 edited

Code Sample, a copy-pastable example if possible

import pandas as pd

f = pd.read_sas('test.sas7bdat', iterator=True)
for chunk in f:
    print(f)

---------------------------------------------------------------------------
AbstractMethodError                       Traceback (most recent call last)
<ipython-input-3-bedf2769bffe> in <module>()
----> 1 for chunk in f:
      2     print(chunk)

C:\Anaconda3\lib\site-packages\pandas\io\common.py in __next__(self)
     99 
    100     def __next__(self):
--> 101         raise AbstractMethodError(self)
    102 
    103 if not compat.PY3:

AbstractMethodError: This method must be defined in the concrete class of SAS7BDATReader

Expected Output

Print of each chunk

I'm no expert, but it seems as if the SAS7BDAT class inherits from BaseIterator but does not provide its own __next__ method

output of pd.show_versions()

INSTALLED VERSIONS

commit: None
python: 3.5.1.final.0
python-bits: 64
OS: Windows
OS-release: 7
machine: AMD64
processor: Intel64 Family 6 Model 60 Stepping 3, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None

pandas: 0.18.1
nose: 1.3.7
pip: 8.1.2
setuptools: 20.3
Cython: 0.23.4
numpy: 1.10.4
scipy: 0.17.0
statsmodels: 0.6.1
xarray: None
IPython: 4.1.2
sphinx: 1.3.1
patsy: 0.4.1
dateutil: 2.5.1
pytz: 2016.2
blosc: None
bottleneck: 1.0.0
tables: 3.2.2
numexpr: 2.5.2
matplotlib: 1.5.1
openpyxl: 2.3.2
xlrd: 0.9.4
xlwt: 1.0.0
xlsxwriter: 0.8.4
lxml: 3.6.0
bs4: 4.4.1
html5lib: None
httplib2: None
apiclient: None
sqlalchemy: 1.0.12
pymysql: None
psycopg2: None
jinja2: 2.8
boto: 2.39.0
pandas_datareader: None

@andersbogsnes That seems like a correct observation! Do you want to make a PR for this? Shouldn't be too difficult, you can see how it is done for the xport reader: https://github.com/pydata/pandas/blob/master/pandas/io/sas/sas_xport.py#L354

Sure, I'll give it a go, seems doable!

@spillz spillz added a commit to spillz/pandas that referenced this issue Aug 6, 2016

@spillz spillz Adds missing __next__ method to SAS7BDATReader needed for iteration (f…
…ixes #13654)
05facf3

@jreback jreback modified the milestone: 0.19.2, Next Major Release Nov 25, 2016

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment