Skip to main content

pandas extension for asserting

Project description

pandas-should

pandas-should is pandas extension for asserting.

Install

Install and update released version using pip:

$ pip install pandas-should

If you want development version:

$ pip install git+https://github.com/momijiame/pandas-should.git

Quickstart

You can just to import pandas_should to use:

import pandas_should

DataFrame

Length (rows)

Before:

assert len(df1) == len(df2)

After:

assert df1.should.have_same_length(df2)

Or

assert df1.should.have_length(len(df2))

Before (multiple DataFrame):

assert len(df1) == (len(df2) + len(df3))

After (multiple DataFrame)

assert df1.should.have_same_length(df2, df3)
Width (columns)

Before:

assert len(df1.columns) == len(df2.columns)

After:

assert df1.should.have_same_width(df2)

Or

assert df1.should.have_width(len(df2.columns))

Before (multiple DataFrame):

assert len(df1.columns) == (len(df2.columns)) + len(df3.columns)))

After (multiple DataFrame)

assert df1.should.have_same_width(df2, df3)
Equality

Before:

from pandas.util.testing import assert_frame_equal
def equal(a, b):
    try:
        assert_frame_equal(a, b)
    except AssertionError:
        return False
    return True

assert equal(df1, df2)

After:

assert df1.should.equal(df2)
Null inclusion

Before:

assert df.isnull().any(axis=None)

After:

assert df.should.have_null()

Or expect not to be included:

assert df.should.have_not_null()
assert not df.should.have_null()
Shape

Before:

assert df1.shape == df2.shape

After:

assert df1.should.be_shaped_like(df2)

Or

assert df1.should.be_shaped_like(df2.shape)
assert df1.should.be_shaped_like(df2.shape[0], df2.shape[1])
Value range

Before:

assert (df >= range_min).any(axis=None) and (df <= range_max).any(axis=None) 

After:

assert df.should.fall_within_range(range_min, range_max)

Greater than only:

assert df.should.greater_than(range_min)
assert df.should.greater_than_or_equal(range_min)

Less than only:

assert df.should.less_than(range_min)
assert df.should.less_than_or_equal(range_min)

Series

Length

Before:

assert len(s1) == len(s2)

After:

assert s1.should.have_same_length(s2)

Or:

assert s1.should.have_length(len(s2))

Before (multiple Series):

assert len(s1) == (len(s2) + len(s3))

After (multiple Series):

assert s1.should.have_same_length(s2, s3)
Equality

Before:

from pandas.util.testing import assert_series_equal
def equal(a, b):
    try:
        assert_series_equal(a, b)
    except AssertionError:
        return False
    return True

assert equal(s1, s2)

After:

assert s1.should.equal(s2)
Null inclusion

Before:

assert s.isnull().any()

After:

assert s.should.have_null()

Or expect not to be included:

assert s.should.have_not_null()
assert not s.should.have_null()
Value range

Before:

assert (s >= range_min).any() and (s <= range_max).any() 

After:

assert s.should.fall_within_range(range_min, range_max)

Greater than only:

assert s.should.greater_than(range_min)
assert s.should.greater_than_or_equal(range_min)

Less than only:

assert s.should.less_than(range_min)
assert s.should.less_than_or_equal(range_min)
Value variety

Before:

assert len(s.unique()) == expect_size

After:

assert s.should.have_number_of_unique_values(expect_size)

Project details


Release history Release notifications

This version

0.1.0

Download files

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

Files for pandas-should, version 0.1.0
Filename, size File type Python version Upload date Hashes
Filename, size pandas-should-0.1.0.tar.gz (3.9 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page