Need help with klib?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

258 Stars 37 Forks MIT License 646 Commits 0 Opened issues


Easy to use Python library of customized functions for cleaning and analyzing data.

Services available


Need anything else?

Contributors list

# 109,289
618 commits
# 102,620
2 commits

klib Header

Flake8 & PyTest Language Last Commit Quality Gate Status Scrutinizer codecov

klib is a Python library for importing, cleaning, analyzing and preprocessing data. Explanations on key functionalities can be found on Medium / TowardsDataScience in the examples section or on YouTube (Data Professor).


Use the package manager pip to install klib.

PyPI Version Downloads

pip install -U klib

Alternatively, to install this package with conda run:

Conda Version Conda Downloads

conda install -c conda-forge klib


import klib
import pandas as pd

df = pd.DataFrame(data)

klib.describe - functions for visualizing datasets

  • klib.cat_plot(df) # returns a visualization of the number and frequency of categorical features
  • klib.corr_mat(df) # returns a color-encoded correlation matrix
  • klib.corr_plot(df) # returns a color-encoded heatmap, ideal for correlations
  • klib.dist_plot(df) # returns a distribution plot for every numeric feature
  • klib.missingval_plot(df) # returns a figure containing information about missing values

klib.clean - functions for cleaning datasets

  • klib.data_cleaning(df) # performs datacleaning (drop duplicates & empty rows/cols, adjust dtypes,...)
  • klib.clean_column_names(df) # cleans and standardizes column names, also called inside data_cleaning()
  • klib.convert_datatypes(df) # converts existing to more efficient dtypes, also called inside data_cleaning()
  • klib.drop_missing(df) # drops missing values, also called in data_cleaning()
  • klib.mv_col_handling(df) # drops features with high ratio of missing vals based on informational content
  • klib.pool_duplicate_subsets(df) # pools subset of cols based on duplicates with min. loss of information

klib.preprocess - functions for data preprocessing (feature selection, scaling, ...)

  • klib.train_dev_test_split(df) # splits a dataset and a label into train, optionally dev and test sets
  • klib.feature_selection_pipe() # provides common operations for feature selection
  • klib.num_pipe() # provides common operations for preprocessing of numerical data
  • klib.cat_pipe() # provides common operations for preprocessing of categorical data
  • klib.preprocess.ColumnSelector() # selects num or cat columns, ideal for a Feature Union or Pipeline
  • klib.preprocess.PipeInfo() # prints out the shape of the data at the specified step of a Pipeline


Find all available examples as well as applications of the functions in klib.clean() with detailed descriptions here.

klib.missingval_plot(df) # default representation of missing values in a DataFrame, plenty of settings are available

Missingvalue Plot Example

klib.corr_plot(df, split='pos') # displaying only positive correlations, other settings include threshold, cmap...
klib.corr_plot(df, split='neg') # displaying only negative correlations

Corr Plot Example

klib.corr_plot(df, target='wine') # default representation of correlations with the feature column

Target Corr Plot Example

klib.dist_plot(df) # default representation of a distribution plot, other settings include fill_range, histogram, ...

Dist Plot Example

klib.cat_plot(data, top=4, bottom=4) # representation of the 4 most & least common values in each categorical column

Cat Plot Example

Further examples, as well as applications of the functions in klib.clean() can be found here.


Open in Visual Studio Code

Pull requests and ideas, especially for further functions are welcome. For major changes or feedback, please open an issue first to discuss what you would like to change.



We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.