https://github.com/alan-turing-institute/CleverCSV
CleverCSV 是一个用于处理混乱的 CSV 文件的 Python 库。它提供了内置 CSV 模块的直接替代品,并改进了方言检测,而且附带了一个方便的命令行应用程序来处理 CSV 文件。
它会自动(高精度)检测 CSV 文件的格式(方言),从而更轻松地指向 CSV 文件并加载它,而无需人工检查。
CleverCSV 的特点
CleverCSV 的特点是它使用机器学习算法来自动检测 CSV 文件的分隔符,这使得它特别适合处理各种格式的 CSV 文件,特别是那些分隔符不是标准逗号的文件。
- 自动检测分隔符:CleverCSV 使用一种称为 “数据嗅探” 的技术,结合机器学习算法来自动推断 CSV 文件中使用的分隔符。这对于处理各种不同的 CSV 文件格式特别有用,因为它减少了手动指定分隔符的需要。
- 易于使用:CleverCSV 与 Python 中标准的 CSV 库接口相似,这意味着对于熟悉标准库的用户来说,迁移到 CleverCSV 是平滑的。
- 处理多种格式:除了标准的逗号分隔外,CleverCSV 还可以处理其他分隔符,如制表符、分号等,使其适用于多种国际格式。
- 集成和兼容性:CleverCSV 可以与现有的 Python 数据处理工具(如Pandas)无缝集成,提供了一种处理复杂 CSV 文件的有效方法。
- 开源:作为一个开源项目,CleverCSV 受到社区的支持和持续发展,用户可以根据自己的需求对其进行修改或贡献。
初体验
库的安装
pip install clevercsv
示例
CleverCSV 还添加了一些有用的包装函数。这些功能会自动检测方言,旨在使 CSV 文件的处理变得更加容易。
- detector_dialect:获取 CSV 文件的路径并返回检测到的方言
- read_table:自动检测文件的方言和编码,并将数据作为行列表返回。
- read_dataframe:检测文件的方言和编码,然后使用 Pandas 将 CSV 读入 DataFrame。
- read_dicts:检测方言并将文件的行作为字典返回,假设第一行包含标题。
- write_table:使用 RFC-4180 方言将表写入文件 。
- write_dicts:使用 RFC-4180 方言将字典列表写入文件 。
使用 read_dataframe 方法将文件读入 DataFrame。
如果文件不是标准的 CSV 格式,通过 pandas 的 read_csv 会报错。
import pandas as pd
df = pd.read_csv('imdb.csv')
改成如下代码则正常:
import clevercsv
df = clevercsv.read_dataframe('imdb.csv')
df.head()
命令行工具
命令行应用程序具有许多方便的功能,可以更轻松地处理 CSV 文件。例如,它可用于在命令行上查看 CSV 文件,同时自动检测方言。它还可以生成 Python 代码,用于使用正确的方言从文件导入数据。
当你不想一遍又一遍地检测同一文件的方言时,代码生成非常有用。
你只需运行以下命令并将生成的代码复制到 Python 脚本即可!
$ clevercsv code --pandas imdb.csv
# Code generated with CleverCSV
import clevercsv
df = clevercsv.read_dataframe("imdb.csv", delimiter=",", quotechar="", escapechar="\\")
更多功能期待大家去探索。
【发文章不易,请大家多多关注、点赞、留言、下载支持!谢谢!】