跳转到主要内容

数据探索器的Python包装器

项目描述

dx

此包提供了表格数据和DEX媒体类型的便捷格式化以及IPython显示格式器注册。

CI codecov code coverage PyPI - License PyPI - Python Version PyPI Code style: black


一个Python数据探索器,由Noteable开源,Noteable是一个协作笔记本平台,允许团队共同使用和可视化数据。

需求

Python 3.8+

安装

Poetry

poetry add dx

然后导入包

import dx

Pip

pip install dx

然后导入包

import dx

使用方法

当前,dx库支持pandas DataFrameSeries对象以及numpy ndarray对象的DEX媒体类型可视化。这可以通过两种方式处理

  • 显式dx.display()调用
  • 设置display_mode以更新会话的IPython显示格式器

使用dx.display()

dx.display()将使用DEX媒体类型显示单个数据集。它目前支持

  • pandas DataFrame对象

    import pandas as pd
    import random
    
    df = pd.DataFrame({
        'random_ints': [random.randint(0, 100) for _ in range(500)],
        'random_floats': [random.random() for _ in range(500)],
    })
    dx.display(df)
    

  • 作为dictlist类型的表格数据

    dx.display([
      [1, 5, 10, 20, 500],
      [1, 2, 3, 4, 5],
      [0, 0, 0, 0, 1]
    ])
    

  • .csv.json文件路径

    df = dx.random_dataframe()
    df.to_csv("dx_docs_sample.csv", index=False)
    
    dx.display("dx_docs_sample.csv")
    

使用dx.set_display_mode()

使用“简单”或“增强”显示模式将允许 dx 更新当前的 IPython 显示格式化程序,以便在整个笔记本/内核会话中显示 pandas DataFrame 对象的 DEX 媒体类型可视化,而不是默认的 DataFrame 显示输出。

详细信息

这将调整 pandas 选项,

  • 将显示的行数从 pandas 默认的 60 增加到 50000
  • 将显示的列数从 pandas 默认的 20 增加到 50
  • 启用 html.table_schema(在 pandas 中默认为 False

这还将处理一些基本的列清理,并使用 pandas.io.json.build_table_schemaDataFrame 生成一个模式。根据显示模式,数据将被转换为一个字典列表或列值列表的列表。

  • "simple" - 字典列表
  • "enhanced" - 列值列表的列表

注意:dx.display() 不同,这仅影响 pandas DataFrame(或任何在 settings.RENDERABLE_TYPES 中设置的类型);它不影响 .csv/.json 文件数据的显示,或 dict/list 输出的显示。

  • dx.set_display_mode("simple")

    import dx
    import numpy as np
    import pandas as pd
    
    # enable DEX display outputs from now on
    dx.set_display_mode("simple")
    
    df = pd.read_csv("dx_docs_sample.csv")
    df
    
    df2 = pd.DataFrame(
        [
            [1, 5, 10, 20, 500],
            [1, 2, 3, np.nan, 5],
            [0, 0, 0, np.nan, 1]
        ],
        columns=['a', 'b', 'c', 'd', 'e']
    )
    df2
    

如果您在任何时候想回到默认的显示格式(纯 pandas 输出),请使用 "plain" 显示模式。这将将 IPython 显示格式更新恢复到原始状态,并将 pandas 选项恢复到默认值。

  • dx.set_display_mode("plain")
    # revert to original pandas display outputs from now on
    dx.set_display_mode("plain")
    
    df = pd.read_csv("dx_docs_sample.csv")
    df
    
    df2 = pd.DataFrame(
        [
            [1, 5, 10, 20, 500],
            [1, 2, 3, np.nan, 5],
            [0, 0, 0, np.nan, 1]
        ],
        columns=['a', 'b', 'c', 'd', 'e']
    )
    df2
    

自定义设置

可以通过调用 dx.settings 查找 dx 的默认设置:

每个都可以使用 dx.set_option() 设置: 将当前会话的 DISPLAY_MAX_ROWS 设置为 3

...或者使用 dx.settings_context() 上下文管理器: 在当前上下文中将 DISPLAY_MAX_ROWS 设置为 3,其余会话的选项保持不变

生成示例数据

文档即将推出!

在 Noteable 之外的使用

如果在 Noteable 之外的环境中使用此包,前端应支持以下媒体类型

  • application/vnd.dataresource+json 用于 "simple" 显示模式
  • application/vnd.dex.v1+json 用于 "enhanced" 显示模式

贡献

请参阅 CONTRIBUTING.md

行为准则

我们遵循 noteable.io 的 行为准则

许可协议

请参阅 LICENSE.md


用 ❤️ 由 Noteable 开源,供社区使用。

Boost Data Collaboration with Notebooks

项目详情


下载文件

下载适合您平台的应用程序。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。

源分发

dx-1.3.0.tar.gz (51.4 kB 查看哈希值)

上传时间 源码

构建发行版

dx-1.3.0-py3-none-any.whl (65.8 kB 查看哈希值)

上传时间 Python 3

由以下支持