一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

1.準(zhǔn)備

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

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

當(dāng)然,我更推薦大家用VSCode編輯器,把本文代碼Copy下來,在編輯器下方的終端裝依賴模塊,多舒服的一件事?。?a href="http://www.www27dydycom.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 則說明安裝成功。

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對象

圖片

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

first_namelast_name
JohnAdams
GeorgeWashington

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

data = tablib.Dataset()

創(chuàng)建出一個Dataset對象,然后通過

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

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

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

來向表中添加一條記錄。

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

圖片

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

圖片

Dataset屬性

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

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

圖片

常用方法

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

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

pop(), rpop(), rpush(row, tags=[]), rpush_col(col, header=None)是對行的相關(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

圖片

對記錄操作

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

對屬性操作

圖片

刪除記錄

圖片

可見記錄也是從0開始索引

刪除記錄操作也支持切片, 即 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)制形式打開文件

dbf:

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

高級使用

動態(tài)列

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

圖片

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

圖片

tag

可以給記錄添加tag,之后通過tag來過濾記錄:

圖片

3.舉個小例子

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

圖片

你只需要這樣操作:

圖片

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

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

    關(guān)注

    7

    文章

    2788

    瀏覽量

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

    關(guān)注

    8

    文章

    7255

    瀏覽量

    91819
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4827

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

    如何把第三方庫加到PROTEUS中?

    新手求教,弱弱的問下,下了第三方庫,說是要先安裝,再添加路徑,可是我下來的第三方庫沒有看到安裝文件啊。還望指教如何添加!
    發(fā)表于 06-15 22:32

    第三方dll調(diào)用問題!??!

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

    LabVIEW與第三方軟件交互問題

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

    下載python第三方

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

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

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

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

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

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

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

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

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

    頭文件中包含第三方文件

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

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

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

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

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

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

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

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

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

    python第三方庫有哪些

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