pandas读取大量数据的分块处理
2023-09-14 08:56:57 时间
数据分块
csv 格式是一种易储存, 易更改并且用户易读取的格式。 pandas 有read_csv ()方法来上传数据,存储为CSV 格式。当遇到CSV 文件过大,导致内存不足的问题该怎么办呢?试试强大的pandas 工具吧!我们先把整个文件拆分成小块。这里,我们把拆分的小块称为chunk。
一个chunk 就是我们数据的一个小组。 Chunk 的大小主要依据我们内存的大小,自行决定。
过程如下:
1.读取一块数据。
2.分析数据。
3.保存该块数据的分析结果。
4.重复1-3步骤,直到所有chunk 分析完毕。
5.把所有的chunk 合并在一起。
1、指定chunksize分块读取文件
read_csv 和 read_table 有一个 chunksize 参数,用以指定一个块大小(每次读取多少行),返回一个可迭代的 TextFileReader 对象。
代码如下:
table=pd.read_table(path+'kuaishou.txt',sep='\t',chunksize=1000000) df_list=[] for df in table: #1.对每一个分块df处理 #2.添加每一个df(df_list.apend(df)) #print(type(df),df.shape)打印看一下信息
df = pd.concat(df_list, ignore_index=True)
2、指定iterator=True
iterator=True同样返回的是TextFileReader对象
import pandas as pd f = open('./data/ows-raw.txt',encoding='utf-8') reader = pd.read_table(f, sep=',', iterator=True, error_bad_lines=False) #跳过报错行 loop = True chunkSize = 1000 chunks = [] while loop: try: chunk = reader.get_chunk(chunkSize) chunks.append(chunk) except StopIteration: loop = False print("Iteration is stopped.") df = pd.concat(chunks, ignore_index=True)
相关文章
- pandas学习(常用数学统计方法总结、读取或保存数据、缺省值和异常值处理)
- pandas学习(创建数据,基本操作)
- 做一个Pandas专家,教你如何用它高效处理大量数据
- pandas DataFrame.where() 检查一个或多个条件的数据帧,并相应地返回结果
- pandas 左右边界切割 用merge join和concat合并Pandas中的数据
- Dataset:数据生成/自定义构造数据之利用pandas自定义生成随机各自类型(离散型和连续型)的dataframe数据、生成n个基于时间序列的数据集(如天气温度样本)代码案例
- Py之pandas:字典格式数据与dataframe格式数据相互转换并导出到csv
- Python:利用pandas对两个dataframe数据进行左联接/左关联(以左边为主体)、右联接/右关联(以右边为主体)、内联接(取交集)、外联接(取并集)操作案例实现代码
- Python语言编程学习:numpy中的array格式数据切片与pandas中的dataframe格式数据切片、相互转换
- 100天精通Python(数据分析篇)——第67天:Pandas数据连接、合并、加入、添加、重构函数(merge、concat、join、append、stack、unstack)
- pandas处理两组开始结束时间冲突数据
- Pandas 多进程处理数据,速度的确快了很多
- 这5个 Pandas 调用函数的方法,让数据处理更加灵活自如!
- 【阶段二】Python数据分析Pandas工具使用09篇:探索性数据分析:数据的描述:数据的相关关系与数据的波动趋势
- 【阶段二】Python数据分析Pandas工具使用05篇:数据预处理:数据的规范化
- pandas dataframe.pivot()用法
- pandas处理数据丢失
- 数据分析工具Pandas基础 数据清洗--处理缺失数据、处理重复数据、替换数据处理
- 【pandas】教程:7-调整表格数据的布局
- 【pandas】教程:4-显示数据
- 上手Pandas,带你玩转数据(2)-- 使用pandas从多种文件中读取数据