tidypolars4sci provides functions that match as closely as possible to R's Tidyverse functions for manipulating data frames and conducting data analysis in Python using the blazingly fast Polars as backend.
The name tidypolars4sci reflects the module's main features:
- Matches the function names and functionalities of R's Tidyverse.
- Leverages the performance and efficiency of Polars under the hood.
- Tailored for scientific research, extending the default functionalities of both Polars and Tidyverse.
tidypolars4sci is an extended API for Polars. One of the main advantages of using Polars as a data manipulation engine is its exceptional speed when compared to other alternatives (see here).
The primary distinction between tidypolars4sci and Polars lies in user interaction. The frontend functions are designed to closely resemble those available in R's Tidyverse, making it easier for users familiar with that ecosystem to transition to this library.
Another useful feature of tidypolars4sci is its extensive functionality aimed at facilitating data analysis and reporting for scientific research and academic publications. This includes the creation of LaTeX tables, which enhances the presentation of results.
Note: Due to the additional functionalities provided, tidypolars4sci may operate slightly slower than using Polars directly.
Available here.
You can install tidypolars4sci with pip:
$ pip3 install tidypolars4sciOr through conda:
$ conda install -c conda-forge tidypolars4scitidypolars4sci methods are designed to work like tidyverse functions:
import tidypolars4sci as tp
# create tibble data frame
df = tp.tibble(x = range(3),
y = range(3, 6),
z = ['a', 'a', 'b'])
(
df
.select('x', 'y', 'z')
.filter(tp.col('x') < 4, tp.col('y') > 1)
.arrange(tp.desc('z'), 'x')
.mutate(double_x = tp.col('x') * 2,
x_plus_y = tp.col('x') + tp.col('y')
)
)
┌─────┬─────┬─────┬──────────┬──────────┐
│ x ┆ y ┆ z ┆ double_x ┆ x_plus_y │
│ --- ┆ --- ┆ --- ┆ --- ┆ --- │
│ i64 ┆ i64 ┆ str ┆ i64 ┆ i64 │
╞═════╪═════╪═════╪══════════╪══════════╡
│ 2 ┆ 5 ┆ b ┆ 4 ┆ 7 │
├╌╌╌╌╌┼╌╌╌╌╌┼╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ 0 ┆ 3 ┆ a ┆ 0 ┆ 3 │
├╌╌╌╌╌┼╌╌╌╌╌┼╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ 1 ┆ 4 ┆ a ┆ 2 ┆ 5 │
└─────┴─────┴─────┴──────────┴──────────┘If you need to use a package that requires pandas or polars data frames, you can convert from a tidypolars4sci tibble to either of those DataFrame formats.
# convert to pandas...
df = df.to_pandas()
# ... or convert to polars
df = df.to_polars()To convert from a pandas or polars DataFrame to a tidypolars tibble:
# convert from pandas...
df = tp.from_pandas(df)
# or covert from polars
df = tp.from_polars(df)- tidypolars: tidypolars was the starting point of tidypolars4sci
