打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何解决python读取大数据量文件时造成的内存溢出?

由于以前遇到的数据文件体量都比较小,今天在使用python读取csv文件时直接内存溢出了。

这里特意记录一下解决问题的三种方式,遇到的场景就是使用pandas模块直接读取csv文件然后返回DataFrame对象结果内存溢出。

首先,来看一下解决这个问题的思路是什么,然后再来分析怎么解决这个问题?

最简单的方式就是直接使用软件工具将大文件进行拆分,拆分完成后再进行读取。第二种则是在读取大文件的过程中直接分段读取,比如按照每十行读取的方式直接进行读取操作。

再或者第三种就是使用底层处理比较优质的模块,比如polars,它的底层存储方式就不会发生内存溢出的问题。

# Importing the pandas module and giving it an alias of pd.
import pandas as pd

# Reading the csv file and returning a DataFrame object.
result_ = pd.read_csv('G:/test/data.csv')

#   File "pandas\_libs\parsers.pyx", line 808, in pandas._libs.parsers.TextReader.read_low_memory
#   File "pandas\_libs\parsers.pyx", line 866, in pandas._libs.parsers.TextReader._read_rows
#   File "pandas\_libs\parsers.pyx", line 852, in pandas._libs.parsers.TextReader._tokenize_rows
#   File "pandas\_libs\parsers.pyx", line 1973, in pandas._libs.parsers.raise_parser_error
# pandas.errors.ParserError: Error tokenizing data. C error: Expected 3 fields in line 14, saw 4542

上面就是直接读取大数据量的csv文件会发生python内存溢出的报错。

若是想继续使用pandas模块读取大数量的文件,可以加上分割读取数据的参数就不会发生内存溢出的现象了。

# Reading the csv file in chunks of 10 rows.
result_ = pd.read_csv('G:/test/data.csv', chunksize=10)

chunksize设置为10,就是可以按照每十行的读取方式来读取csv的数据,并且返回的也是DataFrame的数据对象。

然后就是采用polars模块读取的方式来处理大数据量csv文件,polars本身对于大数据的文件支持比较好,并且读取速度也有很大的提升。

可以使用polars模块一次性读取csv文件直接返回DataFrame的数据对象。

# Importing the polars module and giving it an alias of pol.
import polars as pol

# Reading the csv file and returning a DataFrame object.
data_ = pol.read_csv('G:/test/data.csv')

# Printing the dataframe.
print(data_)

最后一种方式提前将大数据文件做完文件分割之后再进行读取,如果是做文件分割的话推荐一个比较好用的数据文件分割工具-EmEditor。

「Python 集中营」,只做知识分享 !

python情感分析:基于jieba的分词及snownlp的情感分析!

假如有一个专属于python的终端工具,那绝对非他莫属!

python自制的文件解压缩小工具,同时支持7z/zip/rar三种格式!

为了方便,我一口气将20多个python自动化相关的模块记录了下来。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
一款Python高性能数据处理工具
技术派|如何使用 Python 进行时间序列预测?
python写入csv文件的几种方法总结
利用python实现自动化高效率办公?
如何快速学会Python处理数据?(5000字走心总结)
Pandas 数据结构简介
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服