跳转到主要内容

大型CSV文件快速简单摘要

项目描述

csvinsight

https://img.shields.io/pypi/v/csvinsight.svg Build Status Documentation Status Updates

大型CSV文件快速简单摘要

特性

  • 为每一列计算基本统计信息:最大值、最小值、平均长度;非空值的数量

  • 计算唯一值的精确数量和前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

致谢

本软件包使用 Cookiecutteraudreyr/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 (15.3 kB 查看哈希)

上传时间 Python 2 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面