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

Uploaded Source

Built Distribution

pandas_refract-1.1.5-py2.py3-none-any.whl (3.5 kB view details)

Uploaded Python 2 Python 3

File details

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

File metadata

File hashes

Hashes for pandas_refract-1.1.5.tar.gz
Algorithm Hash digest
SHA256 4bdcb0778a234e4b8dade63c28aec0faeb92aad650e80ef2c4a137f5e0e3effe
MD5 845162d7d6f003cd2a36f5228649f48b
BLAKE2b-256 2711bd87b267de4aaa0e0ec513b5389fd78745cb51f434cf7b548b481d414103

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pandas_refract-1.1.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 10a28c7e4cb3ff84f95ad14b7bd618f73112c527e4a25a3b38d38af5c85ef26b
MD5 ae53f3cb33bedc4b71742577fceb0013
BLAKE2b-256 0ce00d804f80d127c74f6e75e817c1a8427a889bc16d0ca52dd124fcb9024c8d

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