Faster, easier, more robust python data analysis
Project description
py-utilz
Convenient helper functions, decorators, and data analysis tools to make life easier with minimal dependencies:
pip install py-utilz
dplyr like data grammar:
from utilz import pipe
import utilz.dfverbs as _
out = pipe(
df,
_.rename({"weight (male, lbs)": "male", "weight (female, lbs)": "female"}),
_.pivot_longer(columns=["male", "female"], into=("sex", "weight")),
_.split("weight", ("min", "max"), sep="-"),
_.pivot_longer(columns=["min", "max"], into=("stat", "weight")),
_.astype({"weight": float}),
_.groupby("genus", "sex"),
_.mutate(weight="weight.mean()"),
_.pivot_wider(column="sex", using="weight"),
_.mutate(dimorphism="male / female")
)
from utilz import map
# Combine function results into a list, array, or dataframe
map(myfunc, myiterable)
# Syntactic sugar for joblib.Parallel
map(myfunc, myiterable, n_jobs=4)
from utilz import log, maybe
# Print the shape of args and outputs before and after execute
@log
def myfunc(args):
return out
# Only run myfunc if results.csv doesn't eist
@maybe
def myfunc(args, out_file=None):
return out
myfunc(args, out_file='results.csv')
Development
- Install poetry:
curl -sSL https://install.python-poetry.org | python - Setup virtual environment
poetry install --with dev - Run all tests:
poetry run pytest - Live render docs:
poetry run mkdocs serve
Additional poetry/virtual environment commands
- Activate environment in current shell:
source activate .venv/bin/activate - Activate environment in sub-process shell:
poetry shell - Add/remove additional packages:
poetry add/remove package_name - Build local package:
poetry build - Deploy to pypi:
poetry publish(requires auth)
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
py_utilz-0.4.1.tar.gz
(44.9 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
py_utilz-0.4.1-py3-none-any.whl
(54.5 kB
view details)
File details
Details for the file py_utilz-0.4.1.tar.gz.
File metadata
- Download URL: py_utilz-0.4.1.tar.gz
- Upload date:
- Size: 44.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71fbbbe37379b532a2eb2d018807c5dba6dee1f523e154b6c63cbb7d3abd92cb
|
|
| MD5 |
1802994321c9854a0ad98ebcdfef9a23
|
|
| BLAKE2b-256 |
01721b30014b270c2f5d8b0facb85357971bc0c86ec2ef7c14363c0817dfae39
|
File details
Details for the file py_utilz-0.4.1-py3-none-any.whl.
File metadata
- Download URL: py_utilz-0.4.1-py3-none-any.whl
- Upload date:
- Size: 54.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d5c84943893012a5551e9de41cf752e46b8e5ebab16b5102dd04f553e90470d5
|
|
| MD5 |
31d3e213a6d248a8e0575da5cce3df15
|
|
| BLAKE2b-256 |
bb24a79f1212100e9db17c42f2ebc09eeb9f24bd562e5fad21d41fd4aeefb415
|