大型CSV文件快速简单摘要
项目描述
csvinsight
大型CSV文件快速简单摘要
免费软件:MIT许可证
特性
为每一列计算基本统计信息:最大值、最小值、平均长度;非空值的数量
计算唯一值的精确数量和前20个最频繁的值
支持非正交数据(列表字段)
与非常大的文件一起工作:不会将整个CSV加载到内存中
快速将CSV拆分为列,每个文件一个列
多进程支持
使用示例
给定一个CSV文件
bash-3.2$ cat tests/sampledata.csv name|age|fave_color Alexey|33|red;yellow Boris|31|blue Valentina|0|
您可以使用以下方法获得CsvInsight报告
bash-3.2$ csvi tests/sampledata.csv --list-fields fave_color CSV Insight Report Total # Rows: 3 Column counts: 3 columns -> 3 rows Report Format: Column Number. Column Header -> Uniques: # ; Fills: # ; Fill Rate: Field Length: min #, max #, average: Top n field values -> Dupe Counts 1. name -> Uniques: 3 ; Fills: 3 ; Fill Rate: 100.0% Field Length: min 5, max 9, avg 6.67 Counts Percent Field Value 1 33.33 % Valentina 1 33.33 % Boris 1 33.33 % Alexey 2. age -> Uniques: 3 ; Fills: 3 ; Fill Rate: 100.0% Field Length: min 1, max 2, avg 1.67 Counts Percent Field Value 1 33.33 % 33 1 33.33 % 31 1 33.33 % 0 3. fave_color -> Uniques: 4 ; Fills: 3 ; Fill Rate: 75.0% Field Length: min 0, max 6, avg 3.25 Counts Percent Field Value 1 25.00 % yellow 1 25.00 % red 1 25.00 % blue 1 25.00 % NULL
由于CSV有不同的风味,您可能需要调整底层CSV解析器的参数才能成功读取您的文件。CSVInsight通过CSV方言处理此问题。例如,要读取逗号分隔的文件,您将使用以下命令
bash-3.2$ csvi your/file.csv --dialect delimiter=,
您可以根据需要组合尽可能多的方言参数
bash-3.2$ csvi your/file.csv --dialect delimiter=, quoting=QUOTE_NONE
有关方言参数的完整列表,请参阅Python csv模块 的文档。常量值如QUOTE_NONE将自动解析。
一旦您发现您文件的获胜参数组合,将其保存到YAML文件中
list_fields: - fave_color - another_field_name list_separator: ; dialect: - "delimiter=|" - "quoting=QUOTE_NONE"
然后您可以按照以下方式调用CSVI
bash-3.2$ csvi your/file.csv --config your/config.yaml
致谢
本软件包使用 Cookiecutter 和 audreyr/cookiecutter-pypackage 项目模板创建。
历史
未发布
0.4.0 (2024-04-09)
停止对Py2.7的支持,移除对six、futures导入等的依赖。
停止对Py3.7及以下版本的支持。
移除ipynb功能。
正确处理空quotechar和escapechar方言参数。
正确处理双引号方言参数。
0.3.3 (2020-12-02)
处理数字引号参数,例如“–dialect quoting=3”。
0.3.2 (2019-07-01)
将字段大小限制设置为sys.maxsize。
0.3.1 (2019-06-26)
将Jupyter笔记本作为可选依赖项。
0.3.0 (2018-07-11)
添加了–most-common参数(解决了问题#14)。
添加了–no-tiny参数。
重构临时文件命名。
改进处理空CSV文件时的错误信息。
修复了“参数列表太长”的错误(问题#15)。
添加了–json参数。
添加了–ipynb参数以生成IPython笔记本。
0.2.3 (2017-12-09)
修复了bug:现在在Py2下Unicode列名可以正常工作。
0.2.2 (2017-12-04)
修复了bug:在Py2下Unicode字符不再破坏CsvInsight。
0.2.1 (2017-11-27)
修复了bug:现在Py3下可以打开gzip文件。
0.2.0 (2017-11-25)
使用gsplit分割文件,并行处理以提高处理速度。
不再与流一起工作;仅与文件一起工作。
移除csvi_summarize和csvi_split入口点。
集成plumbum以实现更干净的管道。
修复问题#11:通过–dialect选项添加了对更多CSV参数的支持。
修复问题#10:从空文件读取不再引发StopIteration。
修复问题#8:在文档中使用正确的GitHub项目链接。
修复问题#2:实现了内存模式以处理较小的文件。
0.1.0 (2017-10-29)
在PyPI上的首次发布。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源分发
构建分发
csvinsight-0.4.0-py2.py3-none-any.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 202dfa02f87552f66606a304ffe74be8d8f44d3ef3dd966741a3530c1fe9d58c |
|
MD5 | bbcb58dca7aac6d0bb1d9b750aa0afc8 |
|
BLAKE2b-256 | c3f4e7c8ea14384b7ab535217a432f5cf10fbdc460f464902bcda405cd38fe5e |