从列表创建数据框时出现内存错误

时间:2019-07-05 14:51:41

标签: python pandas dataframe

我正在python中使用cx_oracle运行SQL查询,查询的结果是一个列表。列表的尺寸,如果180列* 200,000+行。 每当我尝试使用pd.DataFrame将其转换为数据帧时,都会遇到内存错误。 目前,作为解决方案,我尝试通过放置过滤器或仅查询几列等来细分查询,这种方法可以解决。但是然后,如果我更改了一些过滤器,我又遇到了错误,并且我无法始终确定查询将返回多少行。

因此,我正在寻找可以使用的任何其他数据结构/库/包。还是我可以在Pandas中处理此问题? 由于我正在使用Pandas进行数据分析,因此,我希望有一种方法可以在Pandas中而不是在另一个库中进行处理。

列表中的字段为浮点,字符串或时间戳格式。

1 个答案:

答案 0 :(得分:2)

尝试直接将数据 读入Pandas DataFrame:

import cx_Oracle   #  pip install cx_Oracle
from sqlalchemy import create_engine

engine = create_engine('oracle://user:password@host_or_scan_address:1521/ORACLE_SERVIVE_NAME')

df = pd.read_sql('select * from table_name where ...', engine)

PS,您可能还想利用chunksize parameter ...