Skip to main content

Split a dataframe by boolean array

Project description


======================================
``pandas-refract``: Convenient partitioning by Truthy/Falsey array
======================================

**pandas-refract** is an MIT licensed Python package with a simple function that allows users to divide their
dataframes by the 'Truthy' and 'Falseyness' of a provided array.

Eventually, the goal of this package is an additional feature to the Pandas library that allows users to .pop rows
from a dataframe where a condition is met. As far as I can tell this is not possible like the below example.

Ideal case would be::

target_df = df.pop(df['target_column'] == 'target_value')
non_target_df = df

What is required now is::

target_df = df[df['target_column'] == 'target_value']
non_target_df = df[df['target_column'] != 'targe_value']


Obviously, this package is not providing anything not currently possible in the current Pandas library. It does,
however, add a layer of convenience for more complex slicing where you need to separate, not remove, rows by conditions.


Examples
========

Simplest example of current Pandas requires::

df1 = df[df.column.notnull()].reset_index(drop=True)
df2 = df[df.column.isnull()].reset_index(drop=True)

or::

df1 = df[df.column == 'test_string'].reset_index(drop=True)
df2 = df[df.column != 'test_string'].reset_index(drop=True)


With pandas-refract this becomes::

df1, df2 = refract(df, df.column.notnull(), True]

and::

df1, df2 = refract(df, df.column == test_string', True]


But you don't have to pass it explicit boolean arrays::

data = {'a': ['', 'truthy', '', 'truthy'],
'b': [0, 1, 2, 3]
}

df = pd.DataFrame(data)

truthy_df, falsey_df = refract(df, df.a)


More complex examples:
*(where 'a' is Falsey and 'b' is an odd number)*
::

df1, df2 = refract(df, ((~df.a) & (df.b % 2 == 1)))



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_refract-1.2.1.tar.gz (2.9 kB view details)

Uploaded Source

Built Distribution

pandas_refract-1.2.1-py2.py3-none-any.whl (3.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pandas_refract-1.2.1.tar.gz.

File metadata

File hashes

Hashes for pandas_refract-1.2.1.tar.gz
Algorithm Hash digest
SHA256 815b24f82a71d7f4a9559fe041143028b458b88f350cf69eff216066c180fc24
MD5 ab9d667c6f62ad30a2cf3fb0c056c03c
BLAKE2b-256 69ff66ffbe176eca2b2f28dfc503c7fbe841a2eb1c4c54121ddc0abdcfec4a58

See more details on using hashes here.

File details

Details for the file pandas_refract-1.2.1-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pandas_refract-1.2.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 fd9a704957a014a4ac83850b78f81869ab354edd8edd61b081f60d7b767bef8d
MD5 f00802d326db9d652c073f48b0e546e2
BLAKE2b-256 074143e639c163878524ab1a15d03ef2d4438d0a8ab02a12a688ecebc5c68a2b

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 Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page