在处理数据量较大的文件时,如果一次性将文件读入后执行操作会比较慢。读取文件时可以有两种方式:
1、指定chunksize分块读取文件
2、指定iterator=True
针对已经读进内存的数据,可以对dataframe做切分
找了一圈没找到现成的函数,虽然我觉得一定有。。。
把我自己写的一个小切片函数附在这里,仅作记录,需要自取
def splitdf(df,num):
linenum = math.floor(len(df)/num)
pdlist = []
for i in range(num):
pd1 = df[i*linenum:(i+1)*linenum]
pdlist.append(pd1)
# print(len(pd1))
pd1 = df[(num-1)*linenum:len(df)]
pdlist.append(pd1)
return pdlist
后续:事实证明切分不会加快速度,反而还会慢,因为内存的负担更重了,emmmm
测试下来还是用chunksize分快读取数据最靠谱,不过在使用每个块时,除了第一块后面的索引会有问题,使用reset_index()重新排列一下索引就好了