最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

關(guān)于python 讀取csv最快的Datatable的用法,你都學(xué)會(huì)了嗎

 更新時(shí)間:2021年10月19日 11:03:37   作者:songroom  
大家都知道Datatable與眾不同就是快,還有一點(diǎn)大家需要注意使用Datatable庫(kù)需要python3.6及以上版本,接下來(lái)通過(guò)本文給大家介紹了python 讀取csv最快的Datatable的用法,需要的朋友可以參考下

2021年7月1日,官方正式發(fā)布了1.0Datatable版本。1.0版本支持windows和linux,以及Macos。 具體文檔可以見(jiàn):

https://datatable.readthedocs.io/en/latest/start/using-datatable.html

Datatable與眾不同就是快!

需要說(shuō)明的是,使用Datatable庫(kù)需要python3.6及以上版本。

import datatable as dt
import pandas as pd
import time
from datetime import date
from datatable import f,update

t0 = time.time()
t1 = time.time() 
file = r"C:\Users\songroom\Desktop\000001.csv"
my_table = dt.fread(file,sep=",",header=True)  ## datatable格式
## dt.fread(data, sep=",",header=False, columns=["A","B","C","D"]) 多種設(shè)置
t3 = time.time()
print(f"my_table    ->     data type    :{type(my_table)}")
print(f"my_table    ->     data name    : {my_table.names}")
print(f"my_table    ->    (nrows,ncols) : {my_table.shape}") # (nrows, ncols) 

my_table -> data type :<class ‘datatable.Frame'>
my_table -> data name : (‘date', ‘open', ‘close', ‘low', ‘high', ‘volume', ‘money', ‘factor', ‘high_limit', ‘low_limit', ‘a(chǎn)vg', ‘pre_close', ‘paused', ‘open_interest')
my_table -> (nrows,ncols) : (590880, 14)

print(f"my_table    ->    head(10)      : " )
print(my_table.head(10)) # 
print(f" datatable  read_csv cost  time : {t3-t0} s!")

在這里插入圖片描述

# ## 和pandas 相比

t4 = time.time() 
pandas_df = pd.read_csv(file) 
t5 = time.time() 
print(f" pandas read_csv cost    time     : {t5-t4} s! ")

datatable read_csv cost time : 0.059000492095947266 s!
pandas read_csv cost time : 1.7289988994598389 s!

把讀取的csv存成jay文件

把.jay文件讀成datatable

t6 = time.time() 
my_table.to_jay(r"C:\Users\songroom\Desktop\000001.jay")
t7 = time.time() 
print(f"datatable 把數(shù)據(jù)存放成jay cost time : {t7-t6} s!")
## 把.jay文件讀成datatable
t8 = time.process_time_ns() ## 增加精度
table_jay = dt.fread(r"C:\Users\songroom\Desktop\000001.jay")
t9 = time.process_time_ns()
print(f"把.jay文件 讀取到datatable cost time : {(t9-t8)/1000000000.0} s !")
print(f".jay文件讀取成table_jay 的數(shù)據(jù)格式    :{type(table_jay)}")

datatable 把數(shù)據(jù)存放成jay cost time : 0.494002103805542 s! 把.jay文件
讀取到datatable cost time : 0.0 s !
.jay文件讀取成table_jay 的數(shù)據(jù)格式 :<class ‘datatable.Frame'>

## 把datatable轉(zhuǎn)成pandas.dataframe
t10 = time.time() 
pandas_df = my_table.to_pandas()
t11 = time.time() 
print(f"pandas_df  type : {type(pandas_df)}  ")
print(f"datatable 轉(zhuǎn)成  pandas df cost time : {t11-t10} s!")
print(f"{pandas_df.head()}")

pandas_df type : <class ‘pandas.core.frame.DataFrame'> datatable 轉(zhuǎn)成
pandas df cost time : 0.1569967269897461 s!
在這里插入圖片描述

把dataframe轉(zhuǎn)成datatable

t12 = time.process_time()
my_table_from_df = dt.Frame(pandas_df)
t13 = time.process_time()
print(f"dataframe => datatable  cost time : {t13-t12} s!")
print(f"my_table_from_df type: {type(my_table_from_df)}   pandas_df type : {type(pandas_df)}")

dataframe => datatable cost time : 0.296875 s! my_table_from_df type:
<class ‘datatable.Frame'> pandas_df type : <class
‘pandas.core.frame.DataFrame'>

把datatable 轉(zhuǎn)成 csv保存,把datatalbe擴(kuò)展10倍,再輸出csv

t14 = time.time() 
big_table = dt.repeat(my_table, 10) ## 
t14_1 = time.time()
big_table.to_csv(r"C:\Users\songroom\Desktop\000001_big.csv") 
t15 = time.time() 
print(f"big_table  shape (nrows,ncols  ) : {big_table.shape}")
print(f"datatable 擴(kuò)展10倍        cost time :  {t14_1-t14}s!")
print(f"datatable 落地csv文件   cost time : {t15-t14_1} s!")

big_table shape (nrows,ncols ) : (5908800, 14)
datatable 擴(kuò)展10倍 cost time : 0.0s!
datatable 落地csv文件 cost time : 9.905611753463745 s!

與各種類(lèi)型數(shù)據(jù)的轉(zhuǎn)換:

在這里插入圖片描述

datatable => arrow()

arr_from_table = my_table.to_arrow()
print(f"{type(arr_from_table)}")

<class ‘pyarrow.lib.Table'>

把dict =>datatable

dict_data = {"dates" : [date(2000, 1, 5), date(2010, 11, 23), date(2020, 2, 29), None],
          "integers" : range(1, 5),
          "floats" : [10.0, 11.5, 12.3, -13],
          "strings" : ['A', 'B', None, 'D']
          }
table_from_dict = dt.Frame(dict_data)
print(f" dict_data type :{type(dict_data)}   table_from_dict type : {type(table_from_dict)} ")

把datatable => dict

dict_from_datatable = my_table.to_dict()
print(f" dict_from_datatable  type :{type(dict_from_datatable)}   my_table type : {type(my_table)} ")

把datatable 取值和過(guò)濾

my_table_new  = my_table[:, "close"]

找到符合這兩個(gè)條件(且)的table,這兩個(gè)條件要括起來(lái)!

table_3800_and    = my_table[(f.close > 3800) & (f.pre_close < 3800),:] 

找到符合這兩個(gè)條件(or)的table,這兩個(gè)條件要括起來(lái)!

table_3800_or    = my_table[(f.close > 3800) | (f.pre_close < 3800),:] 
my_table[:, 'date']  ## 選擇date列
my_table['date']     ## 同上
my_table[:,["date","close"]] ## 選擇 date,close兩列
my_table[:,f.close]  ## 選擇close
my_table[[1, 2, 3], :] ## 選擇相應(yīng)的行
my_table[range(1, 3), :] ## 選擇相應(yīng)的行

把 datatable 轉(zhuǎn)成list

my_list = my_table_new.to_list()

兩個(gè)datatable的操作 合并

dt1 = dt.rbind(my_table, table_3800_or) ## 這兩個(gè)table合并,行上進(jìn)行合并;列上擴(kuò)展用rbind()
del dt1[:, ['date', 'close']] ## 刪除兩列
my_table['low_high'] = my_table[:, (f.low + f.high)/2.0] ## 增加一列,賦值方法
my_table[:, update(mean = (f.low+ f.high +f.close)/3.0)] ## 增加一列,update方法
my_table.names = {"low_high": "lowhigh", "mean": "mean_3"} ## 對(duì)兩列的字段進(jìn)行重命名

dict_from_datatable type :<class ‘dict'> my_table type : <class ‘datatable.Frame'>

在這里插入圖片描述

循環(huán),效率好象比較慢!后面還待觀察是否有優(yōu)化!

nrows,ncols = my_table.shape
tt0 = time.time()
for i in range(nrows):
    values = my_table[i,:]
tt1 = time.time()
print(f"my_table 循環(huán) cost time :{tt1-tt0} s")

my_table 循環(huán) cost time :9.566002130508423 s。效率看起來(lái)比較低。

到此這篇關(guān)于python 讀取csv最快的Datatable的用法的文章就介紹到這了,更多相關(guān)python 讀取csv內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PyCharm導(dǎo)入python項(xiàng)目并配置虛擬環(huán)境的教程詳解

    PyCharm導(dǎo)入python項(xiàng)目并配置虛擬環(huán)境的教程詳解

    這篇文章主要介紹了Pycharm導(dǎo)入python項(xiàng)目并配置虛擬環(huán)境的教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Python多線程正確用法實(shí)例解析

    Python多線程正確用法實(shí)例解析

    這篇文章主要介紹了Python多線程正確用法實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • python 中如何獲取列表的索引

    python 中如何獲取列表的索引

    這篇文章主要介紹了python 中如何獲取列表的索引,在文中給大家提到了python 返回列表中某個(gè)值的索引,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Python實(shí)現(xiàn)ElGamal加密算法的示例代碼

    Python實(shí)現(xiàn)ElGamal加密算法的示例代碼

    ElGamal加密算法是一個(gè)基于迪菲-赫爾曼密鑰交換的非對(duì)稱(chēng)加密算法。這篇文章通過(guò)示例代碼給大家介紹Python實(shí)現(xiàn)ElGamal加密算法的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2020-06-06
  • Python3中的f-Strings增強(qiáng)版字符串格式化方法

    Python3中的f-Strings增強(qiáng)版字符串格式化方法

    這篇文章主要介紹了Python3中的f-Strings增強(qiáng)版字符串格式化方法,看完本文你將學(xué)習(xí)到如何以及為什么使用f-strings。對(duì)大家的工作或?qū)W習(xí)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 如何利用Python獲取鼠標(biāo)在屏幕上的具體位置以及動(dòng)作

    如何利用Python獲取鼠標(biāo)在屏幕上的具體位置以及動(dòng)作

    這篇文章主要為大家詳細(xì)介紹了如何使用python實(shí)現(xiàn)獲取鼠標(biāo)在屏幕上的具體位置以及動(dòng)作,從而判斷鼠標(biāo)是否在瀏覽器內(nèi),感興趣的小伙伴可以了解下
    2025-03-03
  • python3 中的幾種除法介紹,小數(shù)的不同顯示

    python3 中的幾種除法介紹,小數(shù)的不同顯示

    這篇文章主要介紹了python3 中的幾種除法介紹,小數(shù)的不同顯示,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • 詳解python 字符串和日期之間轉(zhuǎn)換 StringAndDate

    詳解python 字符串和日期之間轉(zhuǎn)換 StringAndDate

    這篇文章主要介紹了python 字符串和日期之間轉(zhuǎn)換 StringAndDate簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 基于python實(shí)現(xiàn)動(dòng)態(tài)煙霧效果

    基于python實(shí)現(xiàn)動(dòng)態(tài)煙霧效果

    動(dòng)態(tài)煙霧效果常用于游戲和動(dòng)畫(huà)中,為場(chǎng)景增添 逼真的視覺(jué)效果,在這篇博客中,我們將使用Python和Pygame庫(kù)來(lái)創(chuàng)建一個(gè)逼真的煙霧動(dòng)畫(huà)效果,感興趣的小伙伴跟著小編一起來(lái)看看吧
    2024-09-09
  • python 實(shí)現(xiàn)生成均勻分布的點(diǎn)

    python 實(shí)現(xiàn)生成均勻分布的點(diǎn)

    今天小編就為大家分享一篇python 實(shí)現(xiàn)生成均勻分布的點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12

最新評(píng)論

漯河市| 平阴县| 丰台区| 德江县| 格尔木市| 出国| 吴堡县| 天津市| 韶山市| 松原市| 新竹县| 全南县| 彰化市| 化隆| 通山县| 旅游| 墨竹工卡县| 朝阳市| 昭通市| 南郑县| 剑川县| 铜梁县| 五大连池市| 高安市| 紫金县| 娄底市| 和平县| 深泽县| 拜泉县| 洛川县| 贵阳市| 延津县| 年辖:市辖区| 罗山县| 开平市| 汝南县| 呼和浩特市| 拜城县| 驻马店市| 滁州市| 论坛|