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

Uploaded Source

Built Distribution

pandas_refract-1.2.0-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.0.tar.gz.

File metadata

File hashes

Hashes for pandas_refract-1.2.0.tar.gz
Algorithm Hash digest
SHA256 4df61f5bf25f483b73beb99267544264b4221320c88e1b5f3e245fea3c4ad881
MD5 a1051cbf56d05210f57c603064e82001
BLAKE2b-256 5414d624f661d7667b5f43b2c932f607fba7e7c9f6071a9207efb47c2212223a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pandas_refract-1.2.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 aab189b570e18fd7518842b20e9c1f865a36141da97687987e0680b2c389169a
MD5 1a7b28c90fa5eca0b673cc4f2d6b179b
BLAKE2b-256 a1e739f71a3bd6e3e548f9f0ea9bd1e15b0ef3116a2b4d7038926bf6daac286c

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