Python 數(shù)據(jù)分析之逐塊讀取文本的實(shí)現(xiàn)
背景
《利用Python進(jìn)行數(shù)據(jù)分析》,第 6 章的數(shù)據(jù)加載操作 read_xxx,有 chunksize 參數(shù)可以進(jìn)行逐塊加載。
經(jīng)測(cè)試,它的本質(zhì)就是將文本分成若干塊,每次處理 chunksize 行的數(shù)據(jù),最終返回一個(gè)TextParser 對(duì)象,對(duì)該對(duì)象進(jìn)行迭代遍歷,可以完成逐塊統(tǒng)計(jì)的合并處理。
示例代碼
文中的示例代碼分析如下:
from pandas import DataFrame,Series import pandas as pd path='D:/AStudy2018/pydata-book-2nd-edition/examples/ex6.csv' # chunksize return TextParser chunker=pd.read_csv(path,chunksize=1000) # an array of Series tot=Series([]) chunkercount=0 for piece in chunker: print '------------piece[key] value_counts start-----------' #piece is a DataFrame,lenth is chunksize=1000,and piece[key] is a Series ,key is int ,value is the key column print piece['key'].value_counts() print '------------piece[key] value_counts end-------------' #piece[key] value_counts is a Series ,key is the key column, and value is the key count tot=tot.add(piece['key'].value_counts(),fill_value=0) chunkercount+=1 #last order the series tot=tot.order(ascending=False) print chunkercount print '--------------'
流程分析
首先,例子數(shù)據(jù) ex6.csv 文件總共有 10000 行數(shù)據(jù),使用 chunksize=1000 后,read_csv操作返回一個(gè) TextParser 對(duì)象,該對(duì)象總共有10個(gè)元素,遍歷過程中打印 chunkercount驗(yàn)證得到。
其次,每個(gè) piece 對(duì)象是一個(gè) DataFrame 對(duì)象,piece['key'] 得到的是一個(gè) Series 對(duì)象,默認(rèn)是數(shù)值索引,值為 csv 文件中的 key 列的值,即各個(gè)字符串。
將每個(gè) Series 的 value_counts 作為一個(gè)Series,與上一次統(tǒng)計(jì)的 tot 結(jié)果進(jìn)行 add 操作,最終得到所有塊數(shù)據(jù)中各個(gè) key 的累加值。
最后,對(duì) tot 進(jìn)行 order 排序,按降序得到各個(gè) key 的值在 csv 文件中出現(xiàn)的總次數(shù)。
這里很巧妙了使用 Series 對(duì)象的 add 操作,對(duì)兩個(gè) Series 執(zhí)行 add 操作,即合并相同key:key相同的記錄的值累加,key不存在的記錄設(shè)置填充值為0。
輸出結(jié)果為:

到此這篇關(guān)于Python 數(shù)據(jù)分析之逐塊讀取文本的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python 逐塊讀取文本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python編寫可視化界面的全過程(Python+PyCharm+PyQt)
- Python實(shí)現(xiàn)K-means聚類算法并可視化生成動(dòng)圖步驟詳解
- python數(shù)據(jù)分析之員工個(gè)人信息可視化
- python爬取各省降水量及可視化詳解
- 關(guān)于Python可視化Dash工具之plotly基本圖形示例詳解
- python用pyecharts實(shí)現(xiàn)地圖數(shù)據(jù)可視化
- Python繪制K線圖之可視化神器pyecharts的使用
- Python繪制詞云圖之可視化神器pyecharts的方法
- python 可視化庫PyG2Plot的使用
- Python數(shù)據(jù)分析之彩票的歷史數(shù)據(jù)
- Python數(shù)據(jù)分析庫pandas高級(jí)接口dt的使用詳解
- Python Pandas數(shù)據(jù)分析工具用法實(shí)例
- 用Python 爬取貓眼電影數(shù)據(jù)分析《無名之輩》
- 大數(shù)據(jù)分析用java還是Python
- python 數(shù)據(jù)分析實(shí)現(xiàn)長寬格式的轉(zhuǎn)換
- PyCharm設(shè)置Ipython交互環(huán)境和宏快捷鍵進(jìn)行數(shù)據(jù)分析圖文詳解
- Python實(shí)戰(zhàn)之疫苗研發(fā)情況可視化
相關(guān)文章
Python實(shí)現(xiàn)列表轉(zhuǎn)Excel表格的第一列
這篇文章主要為大家詳細(xì)介紹了如何將Python中的列表轉(zhuǎn)換為Excel表格的第一列,并通過案例和代碼展示具體的操作步驟,希望可以幫助大家快速掌握這一技能2024-04-04
Pycharm直接使用遠(yuǎn)程服務(wù)器代碼并調(diào)試的解決方法
這篇文章主要介紹了Pycharm直接使用遠(yuǎn)程服務(wù)器代碼并調(diào)試的解決方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02
python3.7中安裝paddleocr及paddlepaddle包的多種方法
這篇文章主要介紹了python3.7中安裝paddleocr及paddlepaddle包,本文通過多種方法給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Python后臺(tái)開發(fā)Django的教程詳解(啟動(dòng))
這篇文章主要介紹了Python后臺(tái)開發(fā)Django(啟動(dòng)),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-04-04
Python入門教程(二十)Python的Lambda表達(dá)式
這篇文章主要介紹了Python入門教程(二十)Python的Lambda表達(dá)式,lambda表達(dá)式是一行的函數(shù)。它們?cè)谄渌Z言中也被稱為匿名函數(shù),lambda表達(dá)式非常有用,可以讓代碼簡單,簡潔,需要的朋友可以參考下2023-04-04
Python 比較兩個(gè) CSV 文件的三種方法并打印出差異
這篇文章主要介紹了Python 比較兩個(gè) CSV 文件并打印出差異,本文將討論比較兩個(gè) CSV 文件的各種方法,我們將包括執(zhí)行此操作的最“Pythonic”方式和可幫助簡化此任務(wù)的外部 Python 模塊,需要的朋友可以參考下2023-06-06
Python實(shí)現(xiàn)飛機(jī)大戰(zhàn)項(xiàng)目
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)飛機(jī)大戰(zhàn)項(xiàng)目,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07

