Skip to main content

Transform string-based expressions into Polars DataFrame operations

Project description

Polars Expression Transformer

Polars Expression Transformer is a Python library that provides a simple and intuitive way to transform and manipulate data using Polars expressions. It is designed for users who are familiar with SQL and Tableau and want to leverage the power of Polars for data processing tasks.

Purpose

The purpose of Polars Expression Transformer is to provide a high-level interface for working with Polars expressions. It allows users to write simple string expressions that can be easily translated into Polars expressions, making it easy to perform complex data transformations without having to write Python code.

Target Group

Polars Expression Transformer is ideal for users who:

  • Are familiar with SQL or Tableau and want to use Polars for data transformation tasks.
  • Want to perform complex data transformations without having to write Python code.
  • Need to integrate Polars into an application or tool and want to provide a simple and intuitive interface for users to perform data transformations.

When to Use

Polars Expression Transformer is particularly useful in the following scenarios:

  • When you are not directly exposed to Python, for example in an application.
  • When you want to provide a simple and intuitive interface for users to perform complex data transformations without having to write Python code.

When Not to Use

Polars Expression Transformer may not be the best choice for users who:

  • Are already familiar with Polars and are developing in an IDE. In this case, it may be more efficient to write Polars expressions directly.
  • Want to have the best performance and all features of Polars. Polars Expression Transformer adds an additional layer on top of Polars, which may result in a performance overhead.
  • Need to perform low-level optimizations or custom transformations that are not supported by Polars Expression Transformer

Installation

To install Polars Expression Transformer, you can use pip:

pip install polars-expr-transformer

Examples

Let's say you have a Polars DataFrame df with columns "names" and "subnames", and you want to create a new column "combined" that concatenates the values in "names" and "subnames" with a space in between.

Without Polars Expression Transformer, you would need to write Python code to accomplish this:

df = df.with_column(pl.col("names") + " " + pl.col("subnames").alias("combined"))

With Polars Expression Transformer, you can write a simple string expression instead:

from polars_expr_transformer.process.polars_expr_transformer import simple_function_to_expr

df = df.select(simple_function_to_expr('concat([names], " ", [subnames])').alias("combined"))

This makes it easy to perform complex data transformations without having to write Python code.

Using DataFrame and LazyFrame

Polars Expression Transformer provides DataFrame and LazyFrame classes that extend the functionality of Polars' native DataFrame and LazyFrame classes, allowing you to apply simple functions using string expressions.

DataFrame

The DataFrame class allows you to apply simple functions to a DataFrame and store the results in a new column.

Example:

from polars_expr_transformer import DataFrame

df = DataFrame({'names': ['Alice', 'Bob'], 'surnames': ['Smith', 'Jones']})
result = df.apply_expression('concat([names], " ", [surnames])', 'full_name')
print(result)
output:
shape: (2, 3)
┌───────┬─────────┬────────────┐
│ names ┆ surnames┆ full_name  │
│ ---   ┆ ---     ┆ ---        │
│ str   ┆ str     ┆ str        │
╞═══════╪═════════╪════════════╡
│ Alice ┆ Smith   ┆ Alice Smith│
│ Bob   ┆ Jones   ┆ Bob Jones  │
└───────┴─────────┴────────────┘

Built on Polars

Polars Expression Transformer is built on top of the amazing Polars library. Polars is a blazing fast DataFrame library implemented in Rust and Python. It is designed to be a high-performance alternative to Pandas and other DataFrame libraries. I highly recommend checking out Polars if you are working with large datasets or need to perform complex data transformations quickly.

Acknowledgements

We would like to thank the Polars team for creating such an amazing library.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

polars_expr_transformer-0.3.2.0.tar.gz (26.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

polars_expr_transformer-0.3.2.0-py3-none-any.whl (33.3 kB view details)

Uploaded Python 3

File details

Details for the file polars_expr_transformer-0.3.2.0.tar.gz.

File metadata

  • Download URL: polars_expr_transformer-0.3.2.0.tar.gz
  • Upload date:
  • Size: 26.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.9 Linux/6.5.0-1023-azure

File hashes

Hashes for polars_expr_transformer-0.3.2.0.tar.gz
Algorithm Hash digest
SHA256 9b45197db7f3d492b757579fab341502259bc64c2d50e6316b660202be1f9335
MD5 f0bcedc979e204ce344a3fbf3808e2d4
BLAKE2b-256 969b59153eef3f3fd4ac098c9f81d33a7f2c1fb2a16d5c0bbb923f86b354ca66

See more details on using hashes here.

File details

Details for the file polars_expr_transformer-0.3.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for polars_expr_transformer-0.3.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fd6d477dad2809b9bd1c25f1a72c41d3860b2620af40e60a1feb9dd17bf1afa3
MD5 5e4ba6dac0cb3d4dcd2d158814d9cd22
BLAKE2b-256 bc41d0e5fdbcb26bf159e8efda9727c3379db34ba57b8a1436f6f68806f95016

See more details on using hashes here.

Supported by

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