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)
Built Distribution
File details
Details for the file pandas_refract-1.2.0.tar.gz
.
File metadata
- Download URL: pandas_refract-1.2.0.tar.gz
- Upload date:
- Size: 2.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4df61f5bf25f483b73beb99267544264b4221320c88e1b5f3e245fea3c4ad881 |
|
MD5 | a1051cbf56d05210f57c603064e82001 |
|
BLAKE2b-256 | 5414d624f661d7667b5f43b2c932f607fba7e7c9f6071a9207efb47c2212223a |
File details
Details for the file pandas_refract-1.2.0-py2.py3-none-any.whl
.
File metadata
- Download URL: pandas_refract-1.2.0-py2.py3-none-any.whl
- Upload date:
- Size: 3.8 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aab189b570e18fd7518842b20e9c1f865a36141da97687987e0680b2c389169a |
|
MD5 | 1a7b28c90fa5eca0b673cc4f2d6b179b |
|
BLAKE2b-256 | a1e739f71a3bd6e3e548f9f0ea9bd1e15b0ef3116a2b4d7038926bf6daac286c |