在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Tablib:一個Python的第三方數據導出模塊

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-11-02 15:57 ? 次閱讀

Tablib是一個Python的第三方數據導出模塊,它支持以下文件格式的導出:

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

其實這個工具能做到的東西,Pandas都能做到,但是有時候Pandas實在是過重了,如果我們只想實現輕量數據的導出,而非上千萬級別的數據導出,該工具更能體現它的優勢。

1.準備

開始之前,你要確保Python和pip已經成功安裝在電腦上噢,如果沒有,請訪問這篇文章:超詳細Python安裝指南 進行安裝。

Windows環境下打開Cmd(開始—運行—CMD),蘋果系統環境下請打開Terminal(command+空格輸入Terminal),準備開始輸入命令安裝依賴。

當然,我更推薦大家用VSCode編輯器,把本文代碼Copy下來,在編輯器下方的終端裝依賴模塊,多舒服的一件事啊:Python 編程的最好搭檔—VSCode 詳細指南

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

pip install tablib

看到 Successfully installed xxx 則說明安裝成功。

2.基本使用

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

創建Dataset對象

圖片

這樣相當于構造了一張表:

first_namelast_name
JohnAdams
GeorgeWashington

其中最重要的就是Dataset對象,當然該對象的創建也可以不輸入參數,直接

data = tablib.Dataset()

創建出一個Dataset對象,然后通過

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

設置表頭,當然也可以使用 data.headers = ('first_name', 'last_name'), 因為不管是用列表還是元組,tablib都會自動幫我們處理好,我們可以通過

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

來向表中添加一條記錄。

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

圖片

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

圖片

Dataset屬性

data.height輸出當前記錄(行)總數

data.width輸出當前屬性(列)總數

圖片

常用方法

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

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

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

remove_duplicates()去除重復的記錄

sort(col, reverse=False)根據列進行排序

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

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

新增列

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']

導入數據

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

導出數據

csv:

圖片

這樣便可成功將數據導出為csv文件。

json:

圖片

yaml:

圖片

excel:

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

注意要以二進制形式打開文件

dbf:

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

高級使用

動態列

可以將一個函數指定給Dataset對象

圖片

函數的參數row傳入的是每一行記錄,所以可以根據傳入的記錄進行更一步的計算:

圖片

tag

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

圖片

3.舉個小例子

現在有一個場景,我們需要將一份股票數據csv文件轉化為json數據:

圖片

你只需要這樣操作:

圖片

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 模塊
    +關注

    關注

    7

    文章

    2716

    瀏覽量

    47529
  • 數據
    +關注

    關注

    8

    文章

    7067

    瀏覽量

    89116
  • python
    +關注

    關注

    56

    文章

    4797

    瀏覽量

    84756
收藏 人收藏

    評論

    相關推薦

    Labview如何內嵌操作第三方EXE程序!

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

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

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

    第三方dll調用問題!!!

    第三方dll,沒有.h,labview怎么實現調用,dll可以用VS打開,類庫說明也有
    發表于 05-11 09:14

    LabVIEW與第三方軟件交互問題

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

    下載python第三方

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

    國內知名第三方檢測認證機構排名

    的檢測機構介入,成熟的第三方檢測機構介入商品檢測在十九世紀中葉已經很普遍了,并成為種自覺的商業行為。目前中國已經成為了全球貿易大國,經濟實力躍居世界第二,強勁的對外貿易增長態勢促進了檢測行業的不斷
    發表于 07-19 16:57

    Detectron訓練第三方數據集測試

    從零開始使用Detectron訓練第三方數據集是什么體驗(六)
    發表于 04-14 11:44

    Python入門之36常用第三方模塊獲取系統信息psutil

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

    關于LabVIEW調用第三方exe,如何去控制第三方exe按鈕的問題

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

    頭文件中包含第三方文件

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

    銀行和第三方支付:戀愛進行時

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

    第三方腳本成為網絡攻擊“重災區”,多管齊下防范第三方腳本安全隱患

      第三方腳本攻擊利用的是第一方網站對第三方腳本的控制力不足和難以實現的全面監測,造成較為嚴重的攻擊后果。除此之外,第三方腳本還會帶來些其
    的頭像 發表于 09-04 14:51 ?3592次閱讀

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

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

    yfinance:獲取數據Python第三方模塊

    yfinance 是使用 Yahoo! 獲取數據Python 第三方模塊。它支持獲取最細
    的頭像 發表于 10-21 14:32 ?2890次閱讀

    python第三方庫有哪些

    Python 作為門功能強大的編程語言,擁有豐富的第三方庫,幾乎覆蓋了各個領域的應用。下面是些常見且廣泛應用的 Python
    的頭像 發表于 11-29 14:31 ?2149次閱讀
    主站蜘蛛池模板: 国产精品任我爽爆在线播放6080| se94se欧美| 色老太视频| 亚洲三级黄| 国产精品网站在线进入| 久久精品美女| 色爱综合区五月小说| 中文字幕区| 午夜色a大片在线观看免费| 午夜影院在线观看| 国产欧美久久久精品影院| 欧美性色欧美a在线播放| 五月婷婷之综合激情| 国产精品第9页| 亚洲 [12p]| 国产高清精品自在久久| 伊人涩| 最新合集丨新片速递| 免费视频18| 男男之h啪肉np文| 性做久久久久久久免费看| 999影院成 人在线影院| 嗯!啊!使劲用力在线观看| 亚洲一区二区三区免费看| 免费人成网ww777kkk手机| 性xxxxhd高清| 欧美呜巴又大粗又长| 亚洲qingse| 毛片美女| 亚洲综合色网站| 国产精品美女久久久| 丝袜美腿一区| 丝袜紧身裙国产在线播放| 瑟瑟网站免费| 久久精品男人的天堂| 亚洲精品午夜视频| 午夜视频在线观看网站| 久草干| 欧美不卡视频在线观看| 十三以下岁女子毛片免费播放| 久久婷婷久久一区二区三区|