pandas-indexing
is a helpers package to make interacting with pandas multi-indices less
painful. It contains functions, that
- filter easily into multi indices:
isin
,ismatch
- add or update levels in a multiindex:
assignlevel
- select one or multiple specific levels:
projectlevel
Given you have a time-series like dataframe with several multi index levels, like model
, scenario
, variable
:
then you can select a subset with:
df.loc[isin(model="m1", scenario=["s1", "s2"])]
or with shell like glob-patterns:
df.loc[
ismatch(
model="REMIND*", variable="Emissions|**", unit=["Mt CO2/yr", "kt N2O/yr"]
)
]
You can overwrite index levels:
assignlevel(df, selected=1)
or project your data to only a few desired index levels:
projectlevel(df, ["model", "scenario"])
All commands are described in detail in the API reference in documentation and are togehter with introductions for installing and using this package, but they are mostly bare-bones atm.
As usual for any GitHub-based project, raise an issue if you find any bug or want to suggest an improvement, or open a discussion if you want to discuss.