Skip to main content

dukit - data utilities kit

Provides utilities focused on data exploration, modification and visualization of small but messy datasets in pandas.

hosted on github as dukit
published on pypi as dukit


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.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dukit 0.2.2
File Size Uploaded
dukit-0.2.2.tar.gz 44.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dukit 0.2.2
File Interpreter ABI Platform
dukit-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 92.3 kB

Release files / dukit-0.2.2.tar.gz

Download URL dukit-0.2.2.tar.gz
Size 44.1 kB
Tags Source
SHA-256 checksum
How to use checksums
872f9f4bef6e0f38d8cd4f8156e1fec9733cefb73193e20ae236028c358f6db6
BLAKE2b-256 checksum
How to use checksums
0a8b2a5413949178350f3168831f99c9608ffea0a2d8b00a808ec475bd953b03
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.2-py3-none-any.whl

Download URL dukit-0.2.2-py3-none-any.whl
Size 48.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c1892c53f99d9bc3e38cec3eaaeaa475440f3630c3837241d5306b9ad599a523
BLAKE2b-256 checksum
How to use checksums
41fb23a7449a85ad6c796fa649626aad7cf8c3382ea056a4e0f6bb51a05e10ad
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 history Release notifications | RSS feed

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page