Skip to main content

Python wrapper for Data Explorer

Project description

badge
logo
go from data to knowledge

ElixirDx

A collaborative notebook platform that enables teams to use and visualize data, together.

Requirements

Python 3.8+

Installation

pip install dx

Then import the package:

import dx

Usage

The dx library currently enables DEX media type visualization of pandas DataFrame and Series objects, as well as numpy ndarray objects. This can be handled in two ways:

  • explicit dx.display() calls
  • setting the display_mode to update the IPython display formatter for a session

With dx.display()

dx.display() will display a single dataset using the DEX media type. It currently supports:

  • pandas DataFrame objects

    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)
    
  • tabular data as dict or list types

    dx.display([
      [1, 5, 10, 20, 500],
      [1, 2, 3, 4, 5],
      [0, 0, 0, 0, 1]
    ])
    
  • .csv or .json filepaths

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

With dx.set_display_mode()

Using either "simple" or "enhanced" display modes will allow dx will update the current IPython display formatters to allow DEX media type visualization of pandas DataFrame objects for an entire notebook / kernel session instead of the default DataFrame display output.

Details

This will adjust pandas options to:

  • increasing the number of rows displayed to 50000 from pandas default of 60
  • increasing the number of columns displayed to 50 from pandas default of 20
  • enabling html.table_schema (False by default in pandas)

This will also handle some basic column cleaning and generate a schema for the DataFrame using pandas.io.json.build_table_schema. Depending on the display mode, the data will be transformed into either a list of dictionaries or list of lists of columnar values.

  • "simple" - list of dictionaries
  • "enhanced" - list of lists

NOTE: Unlike dx.display(), this only affects pandas DataFrames (or any types set in settings.RENDERABLE_OBJECTS); it does not affect the display of .csv/.json file data, or dict/list outputs

  • 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
    

If, at any point, you want to go back to the default display formatting (vanilla pandas output), use the "plain" display mode. This will revert the IPython display format update to its original state and put the pandas options back to their default values.

  • 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
    

Generating Sample Data

Documentation coming soon!

Contributing

See CONTRIBUTING.md.

Code of Conduct

We follow the ElixirNote code of conduct.

LICENSE

See LICENSE.md.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

elixir-dx-1.0.0.tar.gz (49.5 kB view details)

Uploaded Source

Built Distribution

elixir_dx-1.0.0-py3-none-any.whl (64.6 kB view details)

Uploaded Python 3

File details

Details for the file elixir-dx-1.0.0.tar.gz.

File metadata

  • Download URL: elixir-dx-1.0.0.tar.gz
  • Upload date:
  • Size: 49.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for elixir-dx-1.0.0.tar.gz
Algorithm Hash digest
SHA256 b813cddd496df57cced9458df4692c1dc725d2b8f193b377e4d2482bc73ee934
MD5 5cd9fddecee8ae076e294566823b5974
BLAKE2b-256 3c804696908e42c6d4dd35cf9fbbaabc83dd5ae39977485d369849cd2b088dff

See more details on using hashes here.

File details

Details for the file elixir_dx-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: elixir_dx-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 64.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for elixir_dx-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 67f314c417d0f974381ab10a33bbf035392c3fb5561dc39ca2ccf7073f2f1df6
MD5 86e6e9984949739e064890dd336466d7
BLAKE2b-256 665edcb8783855dc1e738464fa133f181bda8fa0e19b8fab03e8f622211c71cf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page