dukit - data utilities kit
Provides utilities focused on data exploration, modification and visualization of small but messy datasets in pandas.
qlang
A small query language. It is implemented as a pandas accessor extension, meaning it can be called from a dataframe without any further preparation by calling df.dk.qs() with a valid text string.
example:
import dukit as dk
df = dk.get_df()
#show all patients with ID > 20000
df.dk.qs(r'id >20000')
#select all patients whose name contains "john"
df.dk.qs(r'name ?john')
#select all patients whose name contains "j" and "a"
df.dk.qs(r'name ?j &&?a')
#select all patients whose name contains "j" or "a"
df.dk.qs(r'name ?j //?a')
#select ages between 18 and 80 and highlight them green
df.dk.qs(r'age >18 &&<80 .color(green)')
Take a look at "interactive_demo.ipynb" in the github repo for a quick syntax introduction and more examples.
The query language allows for arbitrary code execution via eval(), please be aware of the risks.
dk.diff()
Creates colored diff output between two datasets. See interactive_demo.ipynb for examples. Works with pandas dataframes, csv files, excel files and excel files with multiple sheets.
other utilities
dk.log()
A small logger to be used in notebooks or the REPL. Makes it easier to keep track of outputs in large notebooks by providing color coded output. Does not log to file, but instead to a dataframe which can then be viewed at the end of the notebook.
df reshaping
these functions offer various ways to deal with non-unique keys/ids.
primarily used when merging 2 dfs with a one-to-many relationship.
available functions:
- df.dk.flatten()
- df.dk.stagger()
- df.dk.embed()
- df.dk.collapse()
"bashlike" wrappers
While python has functions to achieve similar results as common bash commands, they are often more verbose, less intuitive if you are already used to the bash names and spread out over different modules and different namespaces in those modules (os, os.path, shutil, sys, ...).
These wrappers use the same names as the bash commands and offer some additional functionality.
available wrappers:
- dk.ls()
- dk.lsr()
- dk.pwd()
- dk.cd()
- dk.cp()
- dk.mv()
- dk.mkdir()
- dk.isdir()
- dk.isfile()
- dk.ispath()
type utilities
Mostly wrappers for pandas functions but with some additional functionality and generally more lenient handling of edge cases.
available functions/classes:
- dk.type()
- dk.convert()
- dk.str()
- dk.int()
- dk.float()
- dk.num()
- dk.bool()
- dk.date()
- dk.datetime()
- dk.na()
- dk.nk()
- dk.yn()
- dk.list()
- dk.Box
Metadata
Release files for dukit 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| dukit-0.2.0.tar.gz | 43.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dukit-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 91.9 kB
Release files / dukit-0.2.0.tar.gz
| Download URL | dukit-0.2.0.tar.gz |
|---|---|
| Size | 43.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5dc675901cd87f1bd0b17febe2756c6800e1e8cd8411bc0154cea4d9af138e6c
|
|
BLAKE2b-256 checksum How to use checksums |
0ef859d454d6808037cc7a5a6145e7027ae825c864455e245ca68480e65eaf7b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / dukit-0.2.0-py3-none-any.whl
| Download URL | dukit-0.2.0-py3-none-any.whl |
|---|---|
| Size | 48.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8d64cedaaacd2751d78222408cd353912cb6f7c96408a265218d89ea79c1e8b5
|
|
BLAKE2b-256 checksum How to use checksums |
680a5c02e030bf8d4b7b37b9f3ef85293e14f71cbc6eaff390559452b4e51310
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.9 {"installer":{"name":"uv","version":"0.10.9","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|