Data Quality Check Library
Project description
DATA QUALITY
A library which acts as a test cases for dataframes, and other quality checks
The test cases include(as of now)
- check for null values
- check for duplicates
- check for dtype matching
Quality checks include(as of now)
- generate, save and compare dataframe schemas
The test cases work as a Pass/Fail type, where Passed indicates, good data quality and Failed indicates bad data quality.
The dataframe schema is useful to check for possible schema drifts in your data pipelines.
Example:
TEST CASE FOR NULL VALUES: Passed means that the dataframe has no null values. Failed indicates otherwise.
Requirements
- Python 3+
- Pandas
- Numpy
- json
- datetime
- Dict
- typing
Installation
pip install data-quality-tests
Updates & Changes
-
Usage of functions within the library has changed. previous you had to pass the dataframe to each function of the library. Now you simple have to pass it when initialising the module. Check get started section.
-
new function
get_row_count()has been added in this update, which displays number of rows in a dataframe.
For use case, refer to the get started section -
data_quality_check()now checks for column header whitespaces for leading and trailing. -
generate_schema()now generates a schema for any dataframe -
print_schema()prints the schema of a dataframe -
save_schema_to_file()saves the current dataframe schema to a file. The name of the dataframe is the variable name you give to the dataframe. Default value is "dataframe" -
compare_with_schema(reference_schema)compares a current schema with already existing schema of your dataframe to check for schema drift.
Get Started
How to use this library:
Data quality check
The most basic usage of this library, here for simplifiction,
let's just se the iris dataset from seaborn library as df. And to compare it to another dataframe for schema drift lets generate a dataframe.
You can use any dataset.
from data_quality_tests import DataQuality as dq
import pandas as pd
import seaborn as sns
import json
# import two datasets
df = sns.load_dataset("iris")
#generate this dataset
df2 = pd.util.testing.makeMixedDataFrame()
# initialise the Module
quality = dq(df)
change = dq(df2)
#get row count
rows = quality.get_row_count()
print(rows)
print("")
# check data quality
quality.data_quality_check()
print("")
# generate the schema of df passed in the quality variable
quality.generate_schema()
print("")
# print schema
quality.print_schema()
print("")
# save schema
change.save_schema_to_file()
print("")
# Compare schema drift
## after you run the save_schema_to_file function then use the saved schema.json file
## test.json is iris dataset. and change is new dataset created
with open('test.json', 'r') as f:
reference_schema = json.load(f)
diff = change.compare_with_schema(reference_schema)
if diff.get("status") != "Schemas are identical":
print("Schema drift detected!")
print(diff)
else:
print("Schema is same")
#dq.dtype_columns(df)
#df.head()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
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
File details
Details for the file data_quality_tests-3.1.1.tar.gz.
File metadata
- Download URL: data_quality_tests-3.1.1.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29e2c4940272bb4245d36cfd81743a737cd94a85b5d7362f66fea336217f03bd
|
|
| MD5 |
af8701920fe3001c1d60324dfd17d90f
|
|
| BLAKE2b-256 |
054cefe1664d52d14f4a15631394df3810d9b6f576c68733e4307db62fbb60ea
|
File details
Details for the file data_quality_tests-3.1.1-py3-none-any.whl.
File metadata
- Download URL: data_quality_tests-3.1.1-py3-none-any.whl
- Upload date:
- Size: 6.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
372ec96654b4b01a5373b30fcc7340749f48f3658012ec2800bbf1f1994de1a7
|
|
| MD5 |
2e7b1b427ebd0d6880ff1350da321226
|
|
| BLAKE2b-256 |
6419308888ed28acbc453adebe395c9e591e660ce88016fe62fbd690077cfd20
|