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

This implementation adds some extra syntax and constructs which are not yet part of the Standard. Follow along with the discussion at https://github.com/data-apis/dataframe-api/pull/249.

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.23.tar.gz (35.2 kB view details)

Uploaded Source

Built Distribution

dataframe_api_compat-0.1.23-py3-none-any.whl (20.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dataframe_api_compat-0.1.23.tar.gz
  • Upload date:
  • Size: 35.2 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.23.tar.gz
Algorithm Hash digest
SHA256 a70bb755af336f1ae48d98a78183e273d4887f914e310c2efd85fe1b8fbe46e3
MD5 c32c5e72191f0189799b5c02f8263af4
BLAKE2b-256 9af4c9b3868f54babf55c878f5223f20e3311655169f4bb7a2d86484b6941dff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for dataframe_api_compat-0.1.23-py3-none-any.whl
Algorithm Hash digest
SHA256 831feba4ed8d6ad9a04b64b1058c397520e49d94e5446ce8f5e4b9aa9a6c1209
MD5 188e878b898c0ad8ab84de813f6ac377
BLAKE2b-256 dcafcb83965b9e3694f436658f7056ecdf883030cddf6e3b9a60fd6b65bcc842

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