Python中处理表格数据的Tablib库详解
作者:番茄牛腩不吃番茄
这篇文章主要介绍了Python中处理表格数据的Tablib库详解,Tablib 是一个 MIT 许可的格式不可知的表格数据集库,用 Python 编写,它允许您导入、导出和操作表格数据集,需要的朋友可以参考下
快速入门
Tablib 是一个 MIT 许可的格式不可知的表格数据集库,用 Python 编写。它允许您导入、导出和操作表格数据集。
首先安装第三方包pip install tablib
;pip3是因为电脑上安装了python2.7版本
lifeng@apple ~ % pip3 install tablib Collecting tablib Using cached tablib-3.0.0-py3-none-any.whl (47 kB) Installing collected packages: tablib Successfully installed tablib-3.0.0
其次开始导入包,并创建对象,这个对象就是一个数据集,示例例如:
import tablib t = tablib.Dataset()
最后开始往里面添加数据,示例如下:
- 添加行
import tablib t = tablib.Dataset() names = ["张三 50", "李四 20"] for name in names: n, s = name.split() t.append([n, s])
- 添加标题
t.headers = ["姓名", "分数"]
- 添加列
t.append_col([23, 24], "年龄")
合在一起运行并展示结果,示例如下:
import tablib t = tablib.Dataset() names = ["张三 50", "李四 20"] for name in names: n, s = name.split() t.append([n, s]) t.headers = ["姓名", "分数"] t.append_col([23, 24], "年龄") print(t.dict)
# 运行结果
[OrderedDict([('姓名', '张三'), ('分数', '50'), ('年龄', 23)]), OrderedDict([('姓名', '李四'), ('分数', '20'), ('年龄', 24)])]
Process finished with exit code 0
从返回结果可以清晰看到,是OrderedDict类,它的作用就是按照元素初始添加顺序进行的…
导入数据
tablib.Dataset通过导入预先存在的文件来创建对象很简单。示例如下:
import tablib with open("data_list.xlsx", "rb") as r: data = tablib.Dataset().load(r) print(data) # 运行结果 姓名|分数|年龄 --|--|-- 张三|50|23 李四|20|24 Process finished with exit code 0
目前支持导入csv, tsv, dbf, xls, xlsx格式,这也是官网公布的,实操一下csv, tsv, dbf, xlsx是可行的。
导出数据
- 导出csv格式数据
print(t.export("csv")) # 运行结果 姓名,分数,年龄 张三,50,23 李四,20,24 Process finished with exit code 0
- 导出json格式数据
print(t.export("json")) # 运行结果 [{"姓名": "张三", "分数": "50", "年龄": 23}, {"姓名": "李四", "分数": "20", "年龄": 24}] Process finished with exit code 0
- 导出yaml格式数据
print(t.export("yaml")) # 运行结果 - {分数: '50', 姓名: 张三, 年龄: 23} - {分数: '20', 姓名: 李四, 年龄: 24} Process finished with exit code 0
官方介绍还可以导出xls和pf格式,导入xls格式得安装依赖包xlwt和xlrd;导出pf格式得安装依赖包panads,如果不安装第三方包去直接使用的话就会抛出错误。
获取和删除
- 索引获取、切片获取和键获取,示例如下:
# 索引获取数据 print(t[0]) # 切片获取数据 print(t[0:2]) # 获取全部数据 print(t.dict) # 键名获取指定列 print(t["姓名"]) # 求平均年龄 print(sum(t["年龄"]) / len(t["年龄"]))
- 索引删除、切片删除和键删除,示例如下:
# 索引删除值 del t[0] # 切片删除值 del t[0: 2] # 键名删除指定列 del t["姓名"]
文件中写入数据
import tablib # 准备数据 data_one = [ ('11/24/09', '张三', 56.), ('05/24/10', '李四', 62.) ] data_two = [ ('11/24/09', '王二二', 56.), ('05/24/10', '皮球球', 62.) ] # 创建对象 data = tablib.Dataset() data.headers = ['日期', '姓名', '分数'] # 循环插入数据 for row in data_one: data.append(row) # 循环插入数据 for row in data_two: data.append(row) # 往文件中写入数据 with open('testing.xlsx', 'wb') as f: f.write(data.export('xlsx'))
这里的写入文件不需要先创建好;它会自动识别,不存在时会自动创建,存在时就进行覆盖。运行后完成后截图如下:
到此这篇关于Python中处理表格数据的Tablib库详解的文章就介绍到这了,更多相关Python的Tablib库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!