简介
tablib 是一个 Python 数据处理库,旨在简化各种数据操作任务。它提供了一种轻松处理数据的方式,适用于数据科学家、分析师及开发人员。主要功能包括数据导入导出、转换、合并、拆分、筛选和排序等。
安装
使用 pip 安装 tablib:
pip install tablib
tablib 是 Python 中用于处理表格数据的轻量级库,支持 CSV、Excel、JSON 等多种格式的导入导出。本文介绍其安装方法、数据集创建、数据筛选合并、排序汇总等核心功能,并提供完整代码示例,帮助开发者高效进行数据清洗与转换工作。

tablib 是一个 Python 数据处理库,旨在简化各种数据操作任务。它提供了一种轻松处理数据的方式,适用于数据科学家、分析师及开发人员。主要功能包括数据导入导出、转换、合并、拆分、筛选和排序等。
使用 pip 安装 tablib:
pip install tablib
注意:导出为 Excel (.xlsx) 格式通常需要额外安装 openpyxl 依赖:
pip install openpyxl
在 tablib 中,数据存储在 Dataset 对象中。Dataset 可以看作是一个二维表格,包含表头(headers)和多行数据(rows)。
import tablib
# 创建空数据集
data = tablib.Dataset()
# 设置表头
data.headers = ['Name', 'Age', 'Country']
# 添加单行数据
data.append(['Alice', 25, 'USA'])
data.append(['Bob', 30, 'Canada'])
# 批量添加数据
data.extend([
['Charlie', 22, 'UK'],
['David', 35, 'Germany']
])
print(data)
# 插入数据到指定位置
data.insert(0, ['Eve', 28, 'France'])
# 删除指定索引的行
data.pop(0)
# 更新特定单元格
data[0][1] = 99
tablib 支持多种格式的序列化与反序列化。
# 导出为 CSV
with open('data.csv', 'wb') as f:
f.write(data.export('csv'))
# 从 CSV 字符串加载
loaded_data = tablib.Dataset().load(open('data.csv').read())
# 导出为 Excel (需要 openpyxl)
with open('data.xlsx', 'wb') as f:
f.write(data.export('xlsx'))
# 导出为 JSON
json_str = data.export('json')
print(json_str)
# 从 JSON 加载
loaded_json = tablib.Dataset().load(json_str)
html_table = data.export('html')
print(html_table)
使用 filter 方法配合 lambda 表达式进行条件过滤。
# 筛选年龄大于 25 的数据
filtered_data = data.filter(lambda row: row['Age'] > 25)
print(filtered_data)
# 按 Age 列升序排序
sorted_data = data.sort('Age')
print(sorted_data)
stack 方法可以将两个具有相同行数或不同列数的数据集合并。
data1 = tablib.Dataset()
data1.headers = ['Name', 'Age']
data1.append(['Alice', 25])
data2 = tablib.Dataset()
data2.headers = ['Name', 'Country']
data2.append(['Alice', 'USA'])
# 按列堆叠
merged_data = data1.stack(data2)
print(merged_data)
groupby 结合 aggregate 可以进行类似 SQL 的聚合操作。
data = tablib.Dataset()
data.headers = ['Category', 'Value']
data.append(['A', 10])
data.append(['B', 15])
data.append(['A', 20])
# 按 Category 分组并计算 Value 的和
grouped_data = data.groupby('Category').aggregate({'Value': sum})
print(grouped_data)
tablib 提供了简洁的 API 来处理表格数据,适合快速原型开发、数据清洗脚本以及 ETL 过程中的中间数据交换。通过上述示例,可以掌握其核心功能并集成到实际工作流程中,显著提升数据处理效率。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online