Skip to main content

Transform raw data into insights.

Project description

Pychemist

The Alchemist of Data Science

Transform raw data into insights.

Pychemist is a lightweight Python library designed to simplify and enrich your data science workflow. Inspired by the transformation mindset of an alchemist, it helps you turn raw data into golden insights. Pychemist replaces complex, repetitive code with a clean and intuitive syntax that streamlines data cleaning, transformation, and preparation to reveal clear insights. It also enables clean and well-structured presentation of results, making it easier to communicate findings effectively.


Features

  • Create lagged or lead variables for time-series and panel data
  • Run quick, readable t-tests on treatment groups
  • Filter model summaries to hide fixed effects
  • Conditional mutation of DataFrames
  • Pandas accessor (.chem) for fluent, chainable workflows

Installation

pip install pychemist

Usage

import pychemist as chem

Example 1: Conditional mutation using the df.chem.mutate DataFrame accessor.

Update the total_assets for a specific company and year to a given value:

df=df.chem.mutate('company_id == "8ga62sav" & year==2025', "total_assets", 82000000)

Example 2: Conditional mutation using the df.chem.mutate DataFrame accessor.

Set the Promotion column to 1 for managers who haven't been promoted in 3 or more years and have a performance rating of at least 4; otherwise set it to 0.

df = df.chem.mutate('YearsSinceLastPromotion >= 3 & JobRole == "Manager" & PerformanceRating >= 4', 'Promotion', 1, 0)

Example 3: Creating lagged variables using the df.chem.lag DataFrame accessor.

Create lagged versions of total assets and net income for each ticker, only when the year difference is exactly 1:

df=df.chem.lag(['total assets','net income'],'ticker','year')

Example 4: Creating leading variables using the df.chem.lead DataFrame accessor.

Create lead (future) versions of total assets and net income for each ticker, only when the year difference is exactly 1:

df=df.chem.lead(['total assets','net income'],'ticker','year')

Example 5: Creating 2-year lagged variables using the df.chem.lag DataFrame accessor.

Create lagged versions of total assets and net income for each ticker, only when the year difference is exactly 2:

df=df.chem.lag(['total assets','net income'],'ticker','year',2)

Example 6: T-test between treated and control groups

chem.ttest(df, variable="outcome", treatment="treated")

Example 7: Model summary without fixed effects

import statsmodels.formula.api as smf
model = smf.ols("y ~ x + C(firm)", data=df).fit()
print(chem.summary_no_fe(model))

MIT License Copyright (c) Jeroen van Raak (2025)

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

pychemist-0.0.5.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

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

pychemist-0.0.5-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file pychemist-0.0.5.tar.gz.

File metadata

  • Download URL: pychemist-0.0.5.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pychemist-0.0.5.tar.gz
Algorithm Hash digest
SHA256 c62e9acb4d3baaff48aa21eb565d04087f1dc4672016687065dc0dcfd4c714bf
MD5 5325dc781f9c8ba30a8f4fea5dc0af73
BLAKE2b-256 ae943bb5e5db917418066b36ef71bcbf5b605157bf53bd107eb78a030cefb311

See more details on using hashes here.

Provenance

The following attestation bundles were made for pychemist-0.0.5.tar.gz:

Publisher: release.yaml on vanraak/pychemist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pychemist-0.0.5-py3-none-any.whl.

File metadata

  • Download URL: pychemist-0.0.5-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for pychemist-0.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 c274c1d8f5bec358e75e4e533da6f06e53133596417f54cce96f4c1836539a03
MD5 3cf4ff0dee62bed7bca8ca47fa25a8ff
BLAKE2b-256 ee101e30f8c5ce93bde05bf9d38598870e0549a8d4105e14f4aa6bda1d0aea5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pychemist-0.0.5-py3-none-any.whl:

Publisher: release.yaml on vanraak/pychemist

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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