目錄
一、安裝及基礎(chǔ)知識(shí)介紹
二、從不同的數(shù)據(jù)源導(dǎo)入數(shù)據(jù)
三、對數(shù)據(jù)進(jìn)行加工處理
四、將數(shù)據(jù)導(dǎo)出到不同的格式
Tablib是一個(gè)用于處理電子表格數(shù)據(jù)的Python庫,它可以輕松地進(jìn)行數(shù)據(jù)的導(dǎo)入和導(dǎo)出,以及數(shù)據(jù)格式的轉(zhuǎn)換。本文將詳細(xì)介紹Tablib庫的各種用法和示例,包括如何從不同的數(shù)據(jù)源導(dǎo)入數(shù)據(jù)、如何對數(shù)據(jù)進(jìn)行加工處理以及如何將數(shù)據(jù)導(dǎo)出到不同的格式。
一、安裝及基礎(chǔ)知識(shí)介紹
安裝Tablib非常簡單,只需要使用pip命令即可完成安裝。在終端中輸入以下命令即可開始安裝:
pip install tablib
Tablib最基礎(chǔ)的數(shù)據(jù)類型是Dataset。它由行和列構(gòu)成,可理解為一個(gè)二維數(shù)組,每個(gè)元素可以是任意的Python對象。Dataset可以定義列和行的名稱,在數(shù)據(jù)導(dǎo)出時(shí)也會(huì)體現(xiàn)出來。
二、從不同的數(shù)據(jù)源導(dǎo)入數(shù)據(jù)
1.從csv文件中導(dǎo)入數(shù)據(jù)
使用Tablib導(dǎo)入csv文件非常容易,只需要使用Tablib內(nèi)置的Dataset方法即可實(shí)現(xiàn)。在下面的代碼中,我們將會(huì)導(dǎo)入一個(gè)名為“example.csv”的csv文件,并轉(zhuǎn)換為Tablib的Dataset格式。
import tablib
data = tablib.Dataset().load(open('example.csv').read())
2.從Excel文件中導(dǎo)入數(shù)據(jù)
Tablib同樣支持從Excel文件中導(dǎo)入數(shù)據(jù),可以使用xlrd庫來讀取Excel文件。在下面的代碼中,我們將會(huì)導(dǎo)入一個(gè)名為“example.xlsx”的Excel文件,并轉(zhuǎn)換為Tablib的Dataset格式。
import xlrd
import tablib
data = tablib.Dataset().load(open('example.xlsx').read(), format='xls')
3.從json文件中導(dǎo)入數(shù)據(jù)
導(dǎo)入json文件也非常容易,只需要使用Tablib內(nèi)置的Dataset方法即可實(shí)現(xiàn)。在下面的代碼中,我們將會(huì)導(dǎo)入一個(gè)名為“example.json”的json文件,并轉(zhuǎn)換為Tablib的Dataset格式。
import tablib
import json
data = tablib.Dataset().load(json.load(open('example.json')))
三、對數(shù)據(jù)進(jìn)行加工處理
1.添加列和行
在Tablib中,添加列和行非常方便。對于列的添加,我們只需要在Dataset中使用add_column()方法。而對于行的添加,我們可以使用Dataset的append()方法,通過列表的形式添加具體的數(shù)據(jù)。
import tablib
data = tablib.Dataset()
data.headers = ['name', 'age']
data.add_column(['Tom', 'Ali', 'Mike'], header='name')
data.add_column(['27', '25', '28'], header='age')
2.刪除列和行
刪除列和行同樣很容易,我們只需要使用Dataset的某些方法來刪除指定列或行。在下面的代碼中,我們演示了如何刪除名為“age”的列以及第二行數(shù)據(jù)。
import tablib
data = tablib.Dataset()
data.headers = ['name', 'age']
data.add_column(['Tom', 'Ali', 'Mike'], header='name')
data.add_column(['27', '25', '28'], header='age')
data.remove_column('age')
data.pop(2)
3.重命名列
在Tablib中,重命名列也非常容易,只需要使用Dataset的rename()方法即可。
import tablib
data = tablib.Dataset()
data.headers = ['name', 'age']
data.add_column(['Tom', 'Ali', 'Mike'], header='name')
data.add_column(['27', '25', '28'], header='age')
data.rename('name', 'username')
4.指定列的數(shù)據(jù)類型
在導(dǎo)入數(shù)據(jù)時(shí),Tablib默認(rèn)將所有的數(shù)據(jù)均作為字符串進(jìn)行處理。如果想要在Tablib中處理數(shù)值類型數(shù)據(jù),可以通過指定列的數(shù)據(jù)類型來實(shí)現(xiàn)。
import tablib
data = tablib.Dataset()
data.headers = ['name', 'age']
data.add_column(['Tom', 'Ali', 'Mike'], header='name')
data.add_column([27, 25, 28], header='age', type='numeric')
四、將數(shù)據(jù)導(dǎo)出到不同的格式
1.導(dǎo)出為csv文件
將數(shù)據(jù)導(dǎo)出為csv文件也非常方便,只需要使用Tablib內(nèi)置的csv格式即可。在下面的代碼中,我們將會(huì)使用Tablib將數(shù)據(jù)導(dǎo)出為“example.csv”的csv文件。
import tablib
data = tablib.Dataset()
data.headers = ['name', 'age']
data.add_column(['Tom', 'Ali', 'Mike'], header='name')
data.add_column(['27', '25', '28'], header='age')
with open('example.csv', 'w') as f:
f.write(data.csv)
2.導(dǎo)出為Excel文件
導(dǎo)出為Excel文件同樣容易,只需要使用Tablib內(nèi)置的xls格式,并使用xlwt庫將數(shù)據(jù)導(dǎo)出為Excel文件即可。
import tablib
import xlwt
data = tablib.Dataset()
data.headers = ['name', 'age']
data.add_column(['Tom', 'Ali', 'Mike'], header='name')
data.add_column(['27', '25', '28'], header='age')
book = xlwt.Workbook(encoding='utf-8')
sheet = book.add_sheet('Sheet1')
for idx, row in enumerate(data):
for colidx, value in enumerate(row):
sheet.write(idx, colidx, value)
book.save('example.xls')
3.導(dǎo)出為json文件
將數(shù)據(jù)導(dǎo)出為json文件也非常容易,只需要使用Tablib內(nèi)置的json格式即可。
import tablib
import json
data = tablib.Dataset()
data.headers = ['name', 'age']
data.add_column(['Tom', 'Ali', 'Mike'], header='name')
data.add_column(['27', '25', '28'], header='age')
with open('example.json', 'w') as f:
f.write(json.dumps(data.json))
4.導(dǎo)出為其他格式
Tablib還支持導(dǎo)出為其他格式,包括YAML格式、HTML格式甚至Markdown格式等。在導(dǎo)出其他格式時(shí),需要先安裝對應(yīng)的依賴庫。
import tablib
import yaml
import markdown
data = tablib.Dataset()
data.headers = ['name', 'age']
data.add_column(['Tom', 'Ali', 'Mike'], header='name')
data.add_column(['27', '25', '28'], header='age')
#導(dǎo)出為YAML格式
with open('example.yml', 'w') as f:
f.write(yaml.dump(data.yaml))
#導(dǎo)出為HTML格式
html = '<table>{}</table>'.format(data.html)
with open('example.html', 'w') as f:
f.write(html)
#導(dǎo)出為Markdown格式
md = markdown.markdown(data.markdown)
with open('example.md', 'w') as f:
f.write(md)
總結(jié):文章來源:http://www.zghlxwxcb.cn/news/detail-506168.html
本文介紹了Tablib庫的各種用法和示例,包括從不同數(shù)據(jù)源導(dǎo)入數(shù)據(jù)、對數(shù)據(jù)進(jìn)行加工處理以及將數(shù)據(jù)導(dǎo)出到不同格式的文件中。其中,Tablib庫具有良好的易用性和靈活性,可以幫助我們更高效地處理表格數(shù)據(jù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-506168.html
到了這里,關(guān)于python之tablib:處理表格數(shù)據(jù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!