Python分批读取数据(学习笔记总结,非原创)
import pandas as pd import numpy as np # 定义一个取数的函数,因为数据量大,分批次取 def read_Data(filePath,size=5000): #两个参数(路径,数据一次提取的行数)size=5000可以根据自己的实际情况调整 df = pd.read_csv(filePath,header=0,iterator=True) # 读取数据(路径,从0行开始,使用迭代器iterator,根据取数的大小,一次一次来取 chunks=[] #保存数据块列表,存储每一次获取到的数据 loop=True #循环起始值 while loop: try: chunk=df.get_chunk(size)[['字段1','字段2','字段3']]# 【数据源.get_chunk(n)】获取数据源的n行数据 chunks.append(chunk) except StopIteration: # 当出现StopIteration时,迭代器没有数据可取了 loop = False # loop = False,循环停止 data=pd.concat(chunks,ignore_index=True) return data # 注意return的位置,不要出去了 # 建立一个空的列表,依次通过定义的函数read_Data添加数据,取出来的数都是series的一维列表;最后用concat,各个列表连接起来变成一个数组的形式 data = [] data.append(read_Data(filePath='文件1路径')) data.append(read_Data(filePath='文件2路径')) data.append(read_Data(filePath='文件3路径')) data.append(read_Data(filePath='文件4路径')) data=pd.concat(data,ignore_index=True) data