91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Tablib:一個(gè)Python的第三方數(shù)據(jù)導(dǎo)出模塊

科技綠洲 ? 來(lái)源:Python實(shí)用寶典 ? 作者:Python實(shí)用寶典 ? 2023-11-02 15:57 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Tablib是一個(gè)Python的第三方數(shù)據(jù)導(dǎo)出模塊,它支持以下文件格式的導(dǎo)出:

  • Excel
  • JSON
  • YAML
  • Pandas DataFrames
  • HTML
  • Jira
  • TSV
  • ODS
  • CSV
  • DBF

其實(shí)這個(gè)工具能做到的東西,Pandas都能做到,但是有時(shí)候Pandas實(shí)在是過(guò)重了,如果我們只想實(shí)現(xiàn)輕量數(shù)據(jù)的導(dǎo)出,而非上千萬(wàn)級(jí)別的數(shù)據(jù)導(dǎo)出,該工具更能體現(xiàn)它的優(yōu)勢(shì)。

1.準(zhǔn)備

開(kāi)始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上噢,如果沒(méi)有,請(qǐng)?jiān)L問(wèn)這篇文章:超詳細(xì)Python安裝指南 進(jìn)行安裝。

Windows環(huán)境下打開(kāi)Cmd(開(kāi)始—運(yùn)行—CMD),蘋(píng)果系統(tǒng)環(huán)境下請(qǐng)打開(kāi)Terminal(command+空格輸入Terminal),準(zhǔn)備開(kāi)始輸入命令安裝依賴。

當(dāng)然,我更推薦大家用VSCode編輯器,把本文代碼Copy下來(lái),在編輯器下方的終端裝依賴模塊,多舒服的一件事?。?a href="http://m.makelele.cn/outside?redirect=http://mp.weixin.qq.com/s?__biz=MzI3MzM0ODU4Mg==&mid=2247485849&idx=1&sn=ec098cf67a55bd1d61d4513397434c94&chksm=eb25eb10dc52620682db716d206c18b00bd53c01743729a9dea381e1791566a04a06f1fabca5&scene=21#wechat_redirect" target="_blank">Python 編程的最好搭檔—VSCode 詳細(xì)指南。

在終端輸入以下命令安裝我們所需要的依賴模塊:

pip install tablib

看到 Successfully installed xxx 則說(shuō)明安裝成功。

2.基本使用

這一塊,官方文檔已經(jīng)有詳細(xì)介紹,這里轉(zhuǎn)載自xin053的翻譯與介紹,有部分修改:
https://xin053.github.io/2016/07/10/tablib%E5%BA%93%E4%BD%BF%E7%94%A8%E8%AF%A6%E8%A7%A3/

創(chuàng)建Dataset對(duì)象

圖片

這樣相當(dāng)于構(gòu)造了一張表:

first_namelast_name
JohnAdams
GeorgeWashington

其中最重要的就是Dataset對(duì)象,當(dāng)然該對(duì)象的創(chuàng)建也可以不輸入?yún)?shù),直接

data = tablib.Dataset()

創(chuàng)建出一個(gè)Dataset對(duì)象,然后通過(guò)

data.headers = ['first_name', 'last_name']

設(shè)置表頭,當(dāng)然也可以使用 data.headers = ('first_name', 'last_name'), 因?yàn)椴还苁怯昧斜磉€是元組,tablib都會(huì)自動(dòng)幫我們處理好,我們可以通過(guò)

data.append(['Henry', 'Ford'])
# 或data.append(('Henry', 'Ford'))

來(lái)向表中添加一條記錄。

我們可以通過(guò)data.dict來(lái)查看目前表中的所有數(shù)據(jù):

圖片

也可以通過(guò)print(data)顯示更人性化的輸出:

圖片

Dataset屬性

data.height輸出當(dāng)前記錄(行)總數(shù)

data.width輸出當(dāng)前屬性(列)總數(shù)

圖片

常用方法

詳情可見(jiàn)官方文檔:
https://tablib.readthedocs.io/en/stable/api/#tablib.Dataset.remove_duplicates

lpop(), lpush(row, tags=[]), lpush_col(col, header=None)是對(duì)列的相關(guān)操作

pop(), rpop(), rpush(row, tags=[]), rpush_col(col, header=None)是對(duì)行的相關(guān)操作

remove_duplicates()去除重復(fù)的記錄

sort(col, reverse=False)根據(jù)列進(jìn)行排序

subset(rows=None, cols=None)返回子Dataset

wipe()清空Dataset,包括表頭和內(nèi)容

新增列

data.append_col((90, 67, 83), header='age')

這樣表就變成了:

first_namelast_nameage
JohnAdams90
GeorgeWashington67
HenryFord83

圖片

對(duì)記錄操作

> >> print(data[:2])
[('John', 'Adams', 90), ('George', 'Washington', 67)]
> >> print(data[2:])
[('Henry', 'Ford', 83)]

對(duì)屬性操作

圖片

刪除記錄

圖片

可見(jiàn)記錄也是從0開(kāi)始索引

刪除記錄操作也支持切片, 即 del data[1:999] 也是可行的

刪除屬性

del data['Col Name']

導(dǎo)入數(shù)據(jù)

imported_data = tablib.Dataset().load(open('data.csv').read())

導(dǎo)出數(shù)據(jù)

csv:

圖片

這樣便可成功將數(shù)據(jù)導(dǎo)出為csv文件。

json:

圖片

yaml:

圖片

excel:

>> > with open('people.xls', 'wb') as f:
...     f.write(data.xls)

注意要以二進(jìn)制形式打開(kāi)文件

dbf:

>> > with open('people.dbf', 'wb') as f:
...     f.write(data.dbf)

高級(jí)使用

動(dòng)態(tài)列

可以將一個(gè)函數(shù)指定給Dataset對(duì)象

圖片

函數(shù)的參數(shù)row傳入的是每一行記錄,所以可以根據(jù)傳入的記錄進(jìn)行更一步的計(jì)算:

圖片

tag

可以給記錄添加tag,之后通過(guò)tag來(lái)過(guò)濾記錄:

圖片

3.舉個(gè)小例子

現(xiàn)在有一個(gè)場(chǎng)景,我們需要將一份股票數(shù)據(jù)csv文件轉(zhuǎn)化為json數(shù)據(jù):

圖片

你只需要這樣操作:

圖片

即可將其轉(zhuǎn)化為json格式,顯然,它的特點(diǎn)在于輕量、簡(jiǎn)單。如果用Pandas來(lái)做這樣的轉(zhuǎn)化,則有些大材小用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2837

    瀏覽量

    53283
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7335

    瀏覽量

    94760
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4876

    瀏覽量

    90025
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Labview如何內(nèi)嵌操作第三方EXE程序!

    自己在網(wǎng)上搜了下相關(guān)資料,能把第三方EXE內(nèi)嵌進(jìn)入容器里,但是有個(gè)問(wèn)題,這個(gè)第三方軟件必須手動(dòng)拖到容器正中間,手動(dòng)最大化。請(qǐng)問(wèn)有什么方法可以自動(dòng)實(shí)現(xiàn)嗎? 下圖是我內(nèi)嵌的POLL 軟件。如圖!
    發(fā)表于 04-18 14:26

    如何把第三方庫(kù)加到PROTEUS中?

    新手求教,弱弱的問(wèn)下,下了個(gè)第三方庫(kù),說(shuō)是要先安裝,再添加路徑,可是我下來(lái)的第三方庫(kù)沒(méi)有看到安裝文件啊。還望指教如何添加!
    發(fā)表于 06-15 22:32

    第三方dll調(diào)用問(wèn)題?。?!

    第三方dll,沒(méi)有.h,labview怎么實(shí)現(xiàn)調(diào)用,dll可以用VS打開(kāi),類(lèi)庫(kù)說(shuō)明也有
    發(fā)表于 05-11 09:14

    LabVIEW與第三方軟件交互問(wèn)題

    現(xiàn)在做一個(gè)軟件,就是通過(guò)LabVIEW去與第三方軟件進(jìn)行交互操作!已經(jīng)通過(guò)百度找到了利用user32.dll調(diào)用FindWindowA與PostMessage去實(shí)現(xiàn)對(duì)計(jì)算器,找了多方資料也沒(méi)有找到解決辦法。想做一個(gè)軟件就是對(duì)圖片
    發(fā)表于 12-26 17:13

    下載python第三方庫(kù)

    python第三方庫(kù)的下載
    發(fā)表于 07-02 13:12

    國(guó)內(nèi)知名第三方檢測(cè)認(rèn)證機(jī)構(gòu)排名

    的檢測(cè)機(jī)構(gòu)介入,成熟的第三方檢測(cè)機(jī)構(gòu)介入商品檢測(cè)在十九世紀(jì)中葉已經(jīng)很普遍了,并成為種自覺(jué)的商業(yè)行為。目前中國(guó)已經(jīng)成為了全球貿(mào)易大國(guó),經(jīng)濟(jì)實(shí)力躍居世界第二,強(qiáng)勁的對(duì)外貿(mào)易增長(zhǎng)態(tài)勢(shì)促進(jìn)了檢測(cè)行業(yè)的不斷
    發(fā)表于 07-19 16:57

    Detectron訓(xùn)練第三方數(shù)據(jù)集測(cè)試

    從零開(kāi)始使用Detectron訓(xùn)練第三方數(shù)據(jù)集是什么體驗(yàn)(六)
    發(fā)表于 04-14 11:44

    Python入門(mén)之36常用第三方模塊獲取系統(tǒng)信息psutil

    Python入門(mén)】36常用第三方模塊之 獲取系統(tǒng)信息psutil
    發(fā)表于 07-16 06:31

    關(guān)于LabVIEW調(diào)用第三方exe,如何去控制第三方exe按鈕的問(wèn)題

    我想調(diào)用第三方的exe,但并沒(méi)有給出任何接口,就單單個(gè)exe程序,通過(guò)查資料得出可以用window自帶的user32.dll可以控制第三方的軟件,通過(guò)FindWindowA函數(shù)找到該
    發(fā)表于 08-12 16:37

    頭文件中包含第三方文件

    macrocmake如果源文件(例如 CPP)中包含第三方頭文件,但是頭文件(例如 hpp)中不包含該第三方文件頭,采用 PRIVATE。如果源文件和頭文件中都包含該第三方文件頭,采用 PUBLIC
    發(fā)表于 08-18 08:10

    銀行和第三方支付:戀愛(ài)進(jìn)行時(shí)

    銀行和第三方支付:戀愛(ài)進(jìn)行時(shí)   北京2010年1月8日電  -- 從第三方支付誕生之時(shí)起,銀行與第三方支付之間的競(jìng)合關(guān)系
    發(fā)表于 01-09 08:08 ?895次閱讀

    第三方腳本成為網(wǎng)絡(luò)攻擊“重災(zāi)區(qū)”,多管齊下防范第三方腳本安全隱患

      第三方腳本攻擊利用的是第一方網(wǎng)站對(duì)第三方腳本的控制力不足和難以實(shí)現(xiàn)的全面監(jiān)測(cè),造成較為嚴(yán)重的攻擊后果。除此之外,第三方腳本還會(huì)帶來(lái)些其
    的頭像 發(fā)表于 09-04 14:51 ?4484次閱讀

    GeoPandas:針對(duì)地理數(shù)據(jù)做了特別支持的第三方模塊

    GeoPandas是個(gè)基于pandas,針對(duì)地理數(shù)據(jù)做了特別支持的第三方模塊。 它繼承pandas.Series和pandas.Dataf
    的頭像 發(fā)表于 10-21 14:29 ?1754次閱讀
    GeoPandas:針對(duì)地理<b class='flag-5'>數(shù)據(jù)</b>做了特別支持的<b class='flag-5'>第三方</b><b class='flag-5'>模塊</b>

    yfinance:獲取數(shù)據(jù)Python第三方模塊

    yfinance 是個(gè)使用 Yahoo! 獲取數(shù)據(jù)Python 第三方模塊。它支持獲取最細(xì)
    的頭像 發(fā)表于 10-21 14:32 ?5165次閱讀

    python第三方庫(kù)有哪些

    Python 作為門(mén)功能強(qiáng)大的編程語(yǔ)言,擁有豐富的第三方庫(kù),幾乎覆蓋了各個(gè)領(lǐng)域的應(yīng)用。下面是些常見(jiàn)且廣泛應(yīng)用的 Python
    的頭像 發(fā)表于 11-29 14:31 ?3178次閱讀