免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
如何解決python讀取大數(shù)據(jù)量文件時(shí)造成的內(nèi)存溢出?

由于以前遇到的數(shù)據(jù)文件體量都比較小,今天在使用python讀取csv文件時(shí)直接內(nèi)存溢出了。

這里特意記錄一下解決問(wèn)題的三種方式,遇到的場(chǎng)景就是使用pandas模塊直接讀取csv文件然后返回DataFrame對(duì)象結(jié)果內(nèi)存溢出。

首先,來(lái)看一下解決這個(gè)問(wèn)題的思路是什么,然后再來(lái)分析怎么解決這個(gè)問(wèn)題?

最簡(jiǎn)單的方式就是直接使用軟件工具將大文件進(jìn)行拆分,拆分完成后再進(jìn)行讀取。第二種則是在讀取大文件的過(guò)程中直接分段讀取,比如按照每十行讀取的方式直接進(jìn)行讀取操作。

再或者第三種就是使用底層處理比較優(yōu)質(zhì)的模塊,比如polars,它的底層存儲(chǔ)方式就不會(huì)發(fā)生內(nèi)存溢出的問(wèn)題。

# 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

上面就是直接讀取大數(shù)據(jù)量的csv文件會(huì)發(fā)生python內(nèi)存溢出的報(bào)錯(cuò)。

若是想繼續(xù)使用pandas模塊讀取大數(shù)量的文件,可以加上分割讀取數(shù)據(jù)的參數(shù)就不會(huì)發(fā)生內(nèi)存溢出的現(xiàn)象了。

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

chunksize設(shè)置為10,就是可以按照每十行的讀取方式來(lái)讀取csv的數(shù)據(jù),并且返回的也是DataFrame的數(shù)據(jù)對(duì)象。

然后就是采用polars模塊讀取的方式來(lái)處理大數(shù)據(jù)量csv文件,polars本身對(duì)于大數(shù)據(jù)的文件支持比較好,并且讀取速度也有很大的提升。

可以使用polars模塊一次性讀取csv文件直接返回DataFrame的數(shù)據(jù)對(duì)象。

# 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_)

最后一種方式提前將大數(shù)據(jù)文件做完文件分割之后再進(jìn)行讀取,如果是做文件分割的話(huà)推薦一個(gè)比較好用的數(shù)據(jù)文件分割工具-EmEditor。

「Python 集中營(yíng)」,只做知識(shí)分享 !

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

假如有一個(gè)專(zhuān)屬于python的終端工具,那絕對(duì)非他莫屬!

python自制的文件解壓縮小工具,同時(shí)支持7z/zip/rar三種格式!

為了方便,我一口氣將20多個(gè)python自動(dòng)化相關(guān)的模塊記錄了下來(lái)。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
一款Python高性能數(shù)據(jù)處理工具
技術(shù)派|如何使用 Python 進(jìn)行時(shí)間序列預(yù)測(cè)?
python寫(xiě)入csv文件的幾種方法總結(jié)
利用python實(shí)現(xiàn)自動(dòng)化高效率辦公?
如何快速學(xué)會(huì)Python處理數(shù)據(jù)?(5000字走心總結(jié))
Pandas 數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)介
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服