Unofficial convenience functions that deal with fragmenting Pandas dataframes.
Project description
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.
Because this library deals with splitting dataframes by its values, it uses imagery of light - refract and disperse, like light entering a prism. Eventually, the goal of this package is additional features to the Pandas library that allows users to .pop rows from a dataframe where a condition is met, etc. 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'] != 'target_value']
With pandas-refract this becomes:
target_df, non_target_df = refract(df, df['target_column'] == 'target_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
Built Distribution
File details
Details for the file pandas_refract-1.2.5.tar.gz
.
File metadata
- Download URL: pandas_refract-1.2.5.tar.gz
- Upload date:
- Size: 3.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8e65c9a8a9130ecffbb86c4b3091b43bb947b57e85b6ed57d3b043ed89a0eb6 |
|
MD5 | 0b9ad8ef87e3632296ffbdb39e9f9c95 |
|
BLAKE2b-256 | 331347853bb308eaf98c60e374c1d4a980f3febc9de6a53a121cc359b3f4680e |
File details
Details for the file pandas_refract-1.2.5-py2.py3-none-any.whl
.
File metadata
- Download URL: pandas_refract-1.2.5-py2.py3-none-any.whl
- Upload date:
- Size: 4.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84822c9205b110897515b3060b15d02402f3410c60ba648ebc23ad5bdd693e98 |
|
MD5 | 8a7a2ac9b6aec7aa5d61e8a0530bdaa4 |
|
BLAKE2b-256 | 1d7627847006b45a6496713f655c0a6b8ef2a5eed49a6131e9130190b184a631 |