Pandas數據集的分塊讀取的實現
所謂“分塊”,顧名思義,就是將數據集分成幾塊進行讀取,比如有105條數據,一次讀取10條,讀取11次才能全部讀完。以下提供兩種分塊讀取的方法,兩種方法各有優劣。
一、直接用分塊方式讀取數據集文件(更直接)
分塊讀取數據集文件是指用read_xxx()方法讀取存儲數據的文件時采用分塊的方式,這裡以.csv文件為例,在read_csv()中加入chunksize參數即可實現分塊讀取:
reader = pd.read_csv('某招聘網站數據.csv', usecols = ['positionId', 'companyId', 'positionName', 'skillLables'], chunksize=10)
此時,返回的reader不是DataFrame,而是一個可迭代對象(iteration),需要註意的是,這個可迭代對象不能用下標訪問。 下面遍歷這個對象:
for r in reader: print(r)
遍歷結果如下圖所示:
這種分塊讀取方式比較直接,但是由於一開始就定義瞭分塊大小,後續處理起來不夠靈活。因此提供瞭第二種讀取方法。
二、先將數據集讀取為可迭代對象,再分塊讀取(更靈活)
這種方法將數據集文件讀取為時可迭代對象不定義分塊,用分塊的方式讀取read_csv()方法返回的可迭代對象。實現第一步要在read_csv()方法中指定參數iterator為True:
reader = pd.read_csv('某招聘網站數據.csv', usecols = ['positionId', 'companyId', 'positionName'], iterator=True)
以下是用分塊方式遍歷reader,註意使用到的get_chunk()方法和裡面的參數,參數定義分塊大小,可以靈活調節:
while True: try: print(reader.get_chunk(10)) except StopIteration: break
總結
綜上所述,兩種方法都能用pandas實現數據的分塊讀取,對於數據量較大的數據集還是比較實用的。兩種方法的優劣體現在直接性和靈活性上,可以根據實際需求自行選擇。
到此這篇關於Pandas數據集的分塊讀取的實現的文章就介紹到這瞭,更多相關Pandas數據集分塊讀取內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- python中pandas.read_csv()函數的深入講解
- Python數據處理pandas讀寫操作IO工具CSV解析
- Python Pandas讀取csv/tsv文件(read_csv,read_table)的區別
- 如何使用pandas對超大csv文件進行快速拆分詳解
- python數學建模之三大模型與十大常用算法詳情