0

I want to read data from my oracle, I use the pandas's read_sql and set the parameter chunksize=20000,

from sqlalchemy import create_engine
import pandas as pd
engine = create_engine("my oracle")
df = pd.read_sql("select clause",engine,chunksize=20000)

It returns a iterator, and I want to convert this generator to a dataframe usingdf = pd.DataFrame(df), but it's wrong, How can the iterator be converted to a dataframe?

1 Answer 1

2

This iterator can be concatenated, then it return a dataframe:

df = pd.concat(df)

You can view pandas.concat document.

If you can't use concat directly, try the following:

gens = pd.read_sql("select clause",engine,chunksize=20000)
dflist = []
for gen in gens:
    dflist.append(gen)
df = pd.concat(dflist)
Sign up to request clarification or add additional context in comments.

4 Comments

TypeError: cannot concatenate object of type "<class 'generator'>"; only pd.Series, pd.DataFrame objs are valid
@littlely What is your version? There is no problem on me.
pandas 0.23 and python 3.6.5
@littlely Try what I add.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.