Python中处理表格数据的Tablib库详解

 更新时间:2023年08月01日 11:36:25   作者:番茄牛腩不吃番茄  
这篇文章主要介绍了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库内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pycharm使用技巧之自动调整代码格式总结

    pycharm使用技巧之自动调整代码格式总结

    这篇文章主要给大家介绍了关于pycharm使用技巧之自动调整代码格式总结的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • python实现简单ftp客户端的方法

    python实现简单ftp客户端的方法

    这篇文章主要介绍了python实现简单ftp客户端的方法,涉及ftplib模块的相关使用技巧,需要的朋友可以参考下
    2015-06-06
  • tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式

    tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式

    今天小编就为大家分享一篇tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • Python数据清理技巧分享

    Python数据清理技巧分享

    数据常常被比作新时代的石油,就像石油需要经过提炼才能制造出汽油一样,数据也需要经过整理才能发挥其作用,Python作为最广泛使用的编程语言之一,提供了强大的数据整理工具,本文给大家介绍了Python数据清理的技巧,需要的朋友可以参考下
    2023-10-10
  • 调用其他python脚本文件里面的类和方法过程解析

    调用其他python脚本文件里面的类和方法过程解析

    这篇文章主要介绍了调用其他python脚本文件里面的类和方法过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Python机器学习实战之k-近邻算法的实现

    Python机器学习实战之k-近邻算法的实现

    k-近邻算法采用测量不同特征值之间的距离方法进行分类。这篇文章主要为大家介绍了如何通过python实现K近邻算法,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-11-11
  • Python 爬虫之Beautiful Soup模块使用指南

    Python 爬虫之Beautiful Soup模块使用指南

    这篇文章主要介绍了Python 爬虫之Beautiful Soup模块使用指南,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07
  • python3实现Dijkstra算法最短路径的实现

    python3实现Dijkstra算法最短路径的实现

    这篇文章主要介绍了python3实现Dijkstra算法最短路径的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-05-05
  • 基于Pytorch的神经网络之Regression的实现

    基于Pytorch的神经网络之Regression的实现

    本文主要介绍了基于Pytorch的神经网络之Regression的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Python正则表达式经典入门教程

    Python正则表达式经典入门教程

    这篇文章主要介绍了Python正则表达式,结合具体实例形式归纳总结了Python正则表达式中常用的各种函数与相关使用技巧,需要的朋友可以参考下
    2017-05-05

最新评论