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!

推薦閱讀: