Skip to main content

A dataframe auditor that extracts descriptive statistics from dataframe columns

Project description

still in an early development stage and undergoing significant changes regularly

dataframe-auditor

A dataframe auditor that computes a number characteristics of the data.

Summary

Installation

Testing

Usage

Contributions

Summary

Data profiling is important in data analysis and analytics, as well as in determining characteristics of data pipelines. This repository aims to provide a means to extract a selection of attributes from data.

It is currently focused on processing pandas dataframes, but this functionality is being extended to spark dataframes too.

Given a pandas dataframe, the extracted values are (where object and category types are mapped to string, and all numerical types to numeric):

Type Measure
String & Numeric Percentage null
String Distinct counts
Most frequent categories
Numeric Mean
Standard deviation
Variance
Min value
Max value
Range
Kurtosis
Skewness
Kullback-Liebler divergence
Mean absolute deviation
Median
Interquartile range
Percentage zero values
Percentage nan values

Naturally, many of these characteristics are not independent of one another, but some may be excluded as suits the application.

The result of auditing a dataframe using this library is that a dictionary of these measures is returned for each column in the dataframe. For example, if a dataframe consists of a single column, named trivial, where all values are 1, then

  [{
   "attr":  "trivial",
   "type": "NUMERIC",
   "median": 1.0,
   "variance": 0.0,
   "std": 0.0,
   "max": 1,
   "min": 1,
   "mad": 0.0,
   "p_zeros": 0.0,
   "kurtosis": 0,
   "skewness": 0,
   "iqr": 0.0,
   "range": 0,
   "p_nan": 0.0,
   "mean": 1.0
   }]

For a dataframe with columns ["trivial", "non-trivial"], a list of dictionaries is returned:

  [{
    "attr":  "trivial"
    },
   {
    "attr": "non-trivial"
   }]

Installation

  • Dependencies are contained in requirements.txt:

    pip install -r requirements.txt
    
  • Alternatively, if you wish to install directly from github, you may use:

    pip install git+https://github.com/jackdotwa/dataframe-auditor.git
    

Testing

  • Unittests may be run via:
  python -m unittest discover tests
  • Code coverage may be determined via:
  coverage run -m unittest discover tests && coverage report 

Usage

Many examples of using this package is:

import pandas as pd
import dfauditor
numeric_data = {
      'x': [50, 50, -10, 0, 0, 5, 15, -3, None, 0],
      'y': [0.00001, 256.128, None, 16.32, 2048, -3.1415926535, 111, 2.4, 4.8, 0.0],
      'trivial': [1]*10
}
numeric_df = pd.DataFrame(numeric_data)
result_dict = dfauditor.audit_dataframe(numeric_df, nr_processes=3)

Contributions

Pull requests are always welcome.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

File details

Details for the file spatialedge_analytics_dfauditor-0.0.4-py3-none-any.whl.

File metadata

  • Download URL: spatialedge_analytics_dfauditor-0.0.4-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.57.0 CPython/3.9.2

File hashes

Hashes for spatialedge_analytics_dfauditor-0.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 8197ccdf1dcdadba3fdd08c4d8695f1729cd4aef497ce798916ded83ac34d29a
MD5 fb156918dc236f196d0b1b629784883f
BLAKE2b-256 ad277d243e7a8e6405001128372ed97472b1d3a4f685d39f592993dfca545c01

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page