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
Hashes for pandas_refract-1.2.5-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84822c9205b110897515b3060b15d02402f3410c60ba648ebc23ad5bdd693e98 |
|
MD5 | 8a7a2ac9b6aec7aa5d61e8a0530bdaa4 |
|
BLAKE2b-256 | 1d7627847006b45a6496713f655c0a6b8ef2a5eed49a6131e9130190b184a631 |