Skip to content
pandas extension for asserting
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples implement some apis and refactoring Jul 3, 2019
pandas_should
tests implement some apis and refactoring Jul 3, 2019
.gitignore implement some apis and refactoring Jul 3, 2019
LICENSE
README.md
setup.cfg
setup.py

README.md

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)
You can’t perform that action at this time.