首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在pandas Python中读取大表的有效方法是什么?

问在pandas Python中读取大表的有效方法是什么?
EN

Stack Overflow用户
提问于 2020-06-02 12:43:53
回答 1查看 80关注 0票数 0

我有一个4000万行x54列的MySql格式的表。我尝试使用read_sql分块读取表,但内存不足(我使用的是32 gb的8核EC2实例)。然后我尝试了Limit和Offset方法,但它真的很慢。

有没有什么有效的方法可以在不损失内存的情况下更快地读取表。

我研究了一些大数据技术,但由于我不熟悉大数据,我无法决定使用哪种技术。

目前我正在使用它来读表,但它确实很慢,而且效率也不是很高。

代码语言:javascript
复制
def read_sql_chunked(query, con, nrows, chunksize=10000):
    start = 1
    dfs = []
    while start < nrows:
        df = pd.read_sql("%s LIMIT %s OFFSET %s" % (query, chunksize, start), con)
        dfs.append(df)
        print(start, chunksize)
        start += chunksize
    return pd.concat(dfs, ignore_index=True)
dt = read_sql_chunked(query=query, con=conn, nrows=40000000)
EN

回答 1

Stack Overflow用户

发布于 2020-06-02 13:35:38

您的表中有多少行?听起来您的表太大了,无法容纳您拥有的内存量。如果您想对数据求和,最好先在sql中进行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62144988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档