Helper functions from the Pandas Illustrated guide
Project description
п»ї# pandas-illustrated
This repo contains code for a number of helper functions mentioned in the Pandas Illustrated guide.
Installation:
pip install pandas-illustrated
Contents
Basic operations:
find(s, x, pos=False)
findall(s, x, pos=False)
insert(dst, pos, value, label, axis=0, ignore_index = False, order=None, allow_duplicates=False, inplace=False)
append(dst, value, label = lib.no_default, axis=0, ignore_index = False, order=None, allow_duplicates: bool = False, inplace=False)
drop(obj, items=None, like=None, regex=None, axis=None)
move(obj, pos, label=None, column=None, index=None, axis=None, reset_index=False)
join(dfs, on=None, how="left", suffixes=None)
Visualization improvements:
patch_series_repr(footer=True)
unpatch_series_repr()
sidebyside(*dfs, names=[], index=True, valign="top")
sbs = sidebyside
MultiIndex helpers:
patch_mi_co()
from_dict(d)
from_kw(**kwargs)
Locking columns order:
locked(obj, level=None, axis=None, categories=None, inplace=False)
lock = locked with inplace=True
vis_lock(obj, checkmark="вњ“")
vis_patch()
vis_unpatch()
from_product(iterables, sortorder=None, names=lib.no_default, lock=True)
MultiIndex manipulations:
get_level(obj, level_id, axis=None)
set_level(obj, level_id, labels, name=lib.no_default, axis=None, inplace=False)
move_level(obj, src, dst, axis=None, inplace=False, sort=False)
insert_level(obj, pos, labels, name=lib.no_default, axis=None, inplace=False, sort=False)
drop_level(obj, level_id, axis=None, inplace=False)
swap_levels(obj, i: Axis = -2, j: Axis = -1, axis: Axis = None, inplace=False, sort=False)
join_levels(obj, name=None, sep="_", axis=None, inplace=False)
split_level(obj, names=None, sep="_", axis=None, inplace=False)
rename_level(obj, mapping, level_id=None, axis=None, inplace=False)
Usage
find and findall
By default find(series, value)
looks for the first occurrence of the given value in a series and returns the corresponsing index label.
>>> import pandas as pd
>>> import pdi
>>> s = pd.Series([4, 2, 4, 6], index=['cat', 'penguin', 'dog', 'butterfly'])
>>> pdi.find(s, 2)
'penguin'
>>> pdi.find(s, 4)
'cat'
When the value is not found raises a ValueError
.
findall(series, value)
returns a (possibly empty) index of all matching occurrences:
>>> pdi.findall(s, 4)
Index(['cat', 'dog'], dtype='object')
With pos=True
keyword argument find()
and findall()
return the positional index instead:
>>> pdi.find(s, 2, pos=True)
1
>>> pdi.find(s, 4, pos=True)
0
There is a number of ways to find index label for a given value. The most efficient of them are:
— s.index[s.tolist().index(x)] # faster for Series with less than 1000 elements
— s.index[np.where(s == x)[0][0]] # faster for Series with over 1000 elements
find()
chooses optimal implementation depending on the series size; findall()
always uses the where
implementation.
Improving Series Representation
Run pdi.patch_series_repr()
to make Series look better:
If you want to display several Series from one cell, call display(s)
for each.
Displaying several Pandas objects side vy side
To display several dataframes, series or indices side by side run pdi.sidebyside(s1, s2, ...)
Testing
Run pytest
in the project root.
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-illustrated-0.6.tar.gz
.
File metadata
- Download URL: pandas-illustrated-0.6.tar.gz
- Upload date:
- Size: 16.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cae78b65d513ef5c2c3533981ead204ed249d27ee513b4a44cb76ebb9c434847 |
|
MD5 | c44f750b00110c5224855d514048e856 |
|
BLAKE2b-256 | fe02b1b2fe9c4238f487e042fad29acba8e6da7cb468edb96b726701289b3318 |
File details
Details for the file pandas_illustrated-0.6-py3-none-any.whl
.
File metadata
- Download URL: pandas_illustrated-0.6-py3-none-any.whl
- Upload date:
- Size: 18.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 353d56485986a6e77f6b69382ce985513245ae13ec9b967e2a38d3c28fa9a81e |
|
MD5 | cbc94c56bf3f5b01c10597f02f8ab908 |
|
BLAKE2b-256 | acf516f466f2ec822785a540ed64b8ca4f5090cf58c05a1173405a909b96a4a6 |