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


Download files

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

Source Distribution

pandas-should-0.1.0.tar.gz (3.9 kB view hashes)

Uploaded Source

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