Skip to main content

Implementation of the DataFrame Standard for pandas and Polars

Project description

Build Status Coverage pre-commit.ci status

DataFrame API Compat

standard-compliant DataFrame

Implementation of the DataFrame Standard for pandas and polars.

What's this?

Please read our blog post! https://data-apis.org/blog/dataframe_standard_rfc/.

Documentation

Please check https://data-apis.org/dataframe-api/draft/API_specification/index.html for the methods supported by the Consortium Dataframe Standard.

How to try this out

Here's an example of how you can try this out:

import polars as pl

df = pl.DataFrame({'a': [1,2,3]})
df_std = df.__dataframe_consortium_standard__()

The object df_std is a Standard-compliant DataFrame. Check the API Specification for the full list of methods supported on it.

Here's an example of a dataframe-agnostic function:

from typing import Any


def my_dataframe_agnostic_function(df_non_standard: Any) -> Any:
    df = df_non_standard.__dataframe_consortium_standard__()

    for column_name in df.column_names:
        new_column = df.col(column_name)
        new_column = (new_column - new_column.mean()) / new_column.std()
        df = df.assign(new_column.rename(f'{column_name}_scaled'))

    return df.dataframe

As long as you have this package installed, then either a pandas or Polars DataFrame should work with the code above, e.g.:

import pandas as pd
import polars as pl

df_pd = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6]})
df_pl = pl.DataFrame({'a': [1,2,3], 'b': [4,5,6]})

my_dataframe_agnostic_function(df_pd)
my_dataframe_agnostic_function(df_pl)

Compliance with the Standard

The classes here also have an extra .persist method, which is not (yet) part of the Standard.

Installation

pip install dataframe-api-compat

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

dataframe_api_compat-0.1.27.tar.gz (37.8 kB view details)

Uploaded Source

Built Distribution

dataframe_api_compat-0.1.27-py3-none-any.whl (26.0 kB view details)

Uploaded Python 3

File details

Details for the file dataframe_api_compat-0.1.27.tar.gz.

File metadata

  • Download URL: dataframe_api_compat-0.1.27.tar.gz
  • Upload date:
  • Size: 37.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for dataframe_api_compat-0.1.27.tar.gz
Algorithm Hash digest
SHA256 56b73b12d2ecce6c261368c5a1b51eb1c3e4b7fd2c142554b818ca046ef04103
MD5 9ada04790d3834f1f8e6174e85d00e49
BLAKE2b-256 27a11c30cf5117e162f1fcfb9a355efed304f02c96bd7ffef6bd6a561e88d94d

See more details on using hashes here.

File details

Details for the file dataframe_api_compat-0.1.27-py3-none-any.whl.

File metadata

File hashes

Hashes for dataframe_api_compat-0.1.27-py3-none-any.whl
Algorithm Hash digest
SHA256 c4dbd9849acd8c642df3e54b5ad3c982031cdd9a5d5cc2a90c9c87f0b08fd5ce
MD5 bceb5496c16d1a0c6806cf29cce60775
BLAKE2b-256 a3be6ce2494e9c8cdd7136e15c448ffc9fc1750d7e7406a0d5aeb360d67cc840

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