weixin_38644431
一豪叔叔
采纳率66.7%
2018-12-28 11:54

pandas问题,分块读取,速度越来越慢慢

5
  • 数据挖掘
  • python
已采纳
dataset = P.read_csv(r'E:\try\Stock_All.csv',chunksize = 4096,dtype ={'code':str})    
for each in dataset:
        print('正在处理第 %d 块' % n)
        n += 1
        unique = each['code'].unique()
        for each_code in unique:
            filedir = r'E:\try\S_A_Sep' +'\\'+ str(each_code) +'.csv'

            columns_need = ['date','open','high','close','low','volume','amount','code','id']
            each[each['code'] == each_code].loc[:,columns_need].to_csv(filedir,mode ='a',header = columns_need)
        del each
    return None

前1000块处理速度非常快,但到1500后面就非常慢
尝试用del each释放内存,没办法
有大神能解释下读取速度变慢的原因和解决方法吗

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • weixin_44042770 杨秀昶 3年前

    1.chuck size 太小了。
    2.注意数值类型,一看你就是交易数据。数值类型会极大影响速度。
    3.必要时可以直接numpy,pandas 本身依赖于numpy。
    4.大数据尽量矢量化操作

    百万级别数据其实一次读完都可以。

    点赞 评论 复制链接分享
  • weixin_29444181 哈喽大海豚 3年前

    不要每一条都写一次文件,可以总体弄完写到csv里面去
    columns_need 可以放到最外面去

    点赞 评论 复制链接分享

相关推荐