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释放内存,没办法
有大神能解释下读取速度变慢的原因和解决方法吗
1.chuck size 太小了。
2.注意数值类型,一看你就是交易数据。数值类型会极大影响速度。
3.必要时可以直接numpy,pandas 本身依赖于numpy。
4.大数据尽量矢量化操作
百万级别数据其实一次读完都可以。
不要每一条都写一次文件,可以总体弄完写到csv里面去
columns_need 可以放到最外面去