python datatable庫(kù)大型數(shù)據(jù)集和多核數(shù)據(jù)處理使用探索
python datatable庫(kù)
今天給大家分享一個(gè)超強(qiáng)的 python 庫(kù),datatable
https://github.com/h2oai/datatable
datatable 是一個(gè)用于數(shù)據(jù)處理和統(tǒng)計(jì)分析的 python 庫(kù),類似于Pandas,但專注于大型數(shù)據(jù)集和多核數(shù)據(jù)處理。它最初由 H2O.ai 開發(fā),設(shè)計(jì)目標(biāo)是高效地處理非常大的數(shù)據(jù)集,特別是那些太大以至于不能放入單個(gè)機(jī)器的內(nèi)存中的數(shù)據(jù)集。
核心特性
性能,datatable 針對(duì)性能進(jìn)行了優(yōu)化,尤其是在處理大型數(shù)據(jù)集時(shí)。它使用 C++ 編寫的底層代碼和多線程來加速數(shù)據(jù)處理任務(wù)。
內(nèi)存效率,通過使用內(nèi)存映射文件和其他技術(shù),datatable 可以有效地處理大于物理內(nèi)存大小的數(shù)據(jù)集。
靈活的數(shù)據(jù)處理能力,支持各種數(shù)據(jù)處理操作,包括過濾、排序、分組、聯(lián)接等。
與Pandas的兼容性,datatable 提供了將其 DataFrame 轉(zhuǎn)換為 Pandas DataFrame 的功能,使得用戶可以利用 Pandas 的 API 進(jìn)行進(jìn)一步的數(shù)據(jù)分析和處理。
庫(kù)的安裝
可以直接使用 pip 進(jìn)行安裝。
pip install datatable
讀取數(shù)據(jù)
我們所使用的數(shù)據(jù)集是貸款數(shù)據(jù)集,該文件由 226 萬(wàn)行和 145 列組成。
讓我們將數(shù)據(jù)加載到 Frame 對(duì)象中。datatable 中分析的基本單位是 Frame。它與 pandas DataFrame 或 SQL 表的概念相同,數(shù)據(jù)排列在具有行和列的二維數(shù)組中。
import pandas as pd import datatable as dt %%time datatable_df = dt.fread("test/accepted_2007_to_2018Q4.csv")
可以看到使用時(shí)間是 34.7 秒。
datatable 庫(kù)的 fread() 函數(shù)可以從多個(gè)源讀取數(shù)據(jù),包括文件、URL等等。
現(xiàn)在,讓我們計(jì)算 pandas 讀取同一文件所花費(fèi)的時(shí)間
%%time pandas_df= pd.read_csv("test/accepted_2007_to_2018Q4.csv")
可以看到使用時(shí)間是2分 30 秒。
結(jié)果表明,在讀取大型數(shù)據(jù)集時(shí),datatable 明顯優(yōu)于 pandas。
幀轉(zhuǎn)換
現(xiàn)有的 Frame 也可以轉(zhuǎn)換為 numpy 或 pandas 數(shù)據(jù)框,如下所示:
numpy_df = datatable_df.to_numpy() pandas_df = datatable_df.to_pandas()
Frame 屬性
讓我們看一下 datatable frame 的一些基本屬性,它們類似于 pandas 的屬性。
print(datatable_df.shape) print(datatable_df.names[:5]) print(datatable_df.stypes[:5])
我們還可以使用 head 命令輸出前 'n' 行。
datatable_df.head(10)
統(tǒng)計(jì)摘要
在 pandas 中計(jì)算統(tǒng)計(jì)摘要數(shù)據(jù)是一個(gè)消耗內(nèi)存的過程,但在 datatable 中則不再如此。
我們可以使用 datatable 計(jì)算以下每列摘要統(tǒng)計(jì)信息。
datatable_df.mean()
數(shù)據(jù)處理
以下代碼從數(shù)據(jù)集中選擇所有行和 funded_amnt 列。
datatable_df[:,'funded_amnt']
按 funded_amnt_inv 列進(jìn)行排序。
datatable_df.sort('funded_amnt_inv')
刪除名為 member_id 的列。
del datatable_df[:, 'member_id']
就像 pandas 一樣,datatable 也具有 groupby 功能。
讓我們看看如何獲得按 Grade 列分組的 funded_amount 列的平均值。
datatable_df[:, dt.sum(dt.f.funded_amnt), dt.by(dt.f.grade)]
過濾行的語(yǔ)法與 GroupBy 非常相似。讓我們過濾 loan_amnt 中 loan_amnt 值大于 funded_amnt 的那些行。
datatable_df[dt.f.loan_amnt>dt.f.funded_amnt,"loan_amnt"]
以上就是python datatable庫(kù)大型數(shù)據(jù)集和多核數(shù)據(jù)處理使用探索的詳細(xì)內(nèi)容,更多關(guān)于python datatable庫(kù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python json.dumps() json.dump()的區(qū)別詳解
這篇文章主要介紹了python json.dumps() json.dump()的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07python數(shù)據(jù)庫(kù)操作mysql:pymysql、sqlalchemy常見用法詳解
這篇文章主要介紹了python數(shù)據(jù)庫(kù)操作mysql:pymysql、sqlalchemy常見用法,結(jié)合實(shí)例形式分析了Python mysql操作庫(kù)pymysql、sqlalchemy基本使用技巧與操作注意事項(xiàng),需要的朋友可以參考下2020-03-03Django視圖之ORM數(shù)據(jù)庫(kù)查詢操作API的實(shí)例
下面小編就為大家?guī)硪黄狣jango視圖之ORM數(shù)據(jù)庫(kù)查詢操作API的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10python學(xué)習(xí)--使用QQ郵箱發(fā)送郵件代碼實(shí)例
這篇文章主要介紹了python使用QQ郵箱發(fā)送郵件,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Python中如何使用if語(yǔ)句處理列表實(shí)例代碼
這篇文章主要給大家介紹了關(guān)于在Python中如何使用if語(yǔ)句處理列表的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-02-02Python編程批量實(shí)現(xiàn)md5加密pdf文件
這篇文章主要介紹了Python編程批量實(shí)現(xiàn)md5加密pdf文件,文章基于python的相關(guān)資料展開詳細(xì)內(nèi)容介紹,具有一定的參考價(jià)值需要的小伙伴可以參考一下2022-04-04Python+SimpleRNN實(shí)現(xiàn)股票預(yù)測(cè)詳解
這篇文章主要為大家詳細(xì)介紹了如何利用Python和SimpleRNN實(shí)現(xiàn)股票預(yù)測(cè)效果,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)有一定幫助,需要的可以參考一下2022-05-05簡(jiǎn)單有效上手Python3異步asyncio問題
這篇文章主要介紹了簡(jiǎn)單有效上手Python3異步asyncio問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01