find_consecutive_value_blocks_in_series
- trashpanda.find_consecutive_value_blocks_in_series(source: pandas.core.series.Series) pandas.core.series.Series
Creates a MultiIndex for consecutive values within a Series.
Warning
In development and not fully tested.
- Parameters
source – Series with potential consecutive values.
- Returns
Series with MultiIndex stating the block and origin index.
- Return type
Series
Notes
Added in 1.2
Examples
Adding the MultiIndex with a leading block integer enables the easy selection/iteration of the single blocks.
>>> from pandas import Series, Index >>> from doctestprinter import print_pandas >>> sample_series = Series( ... list(iter("A--AA-AAA")), ... index=Index(list(iter("abcdefghi")), name="old_index"), ... name="sample" ... ) >>> block_sample = find_consecutive_value_blocks_in_series(source=sample_series) >>> print_pandas(block_sample) block old_index sample 0 a A 1 b - c - 2 d A e A 3 f - 4 g A h A i A
>>> block_sample.loc[1] old_index b - c - Name: sample, dtype: object
This function also works with MultiIndexes.
>>> from pandas import MultiIndex >>> from doctestprinter import print_pandas >>> sample_multi_index = MultiIndex.from_arrays( ... [[0, 0, 0, 1, 1, 1, 2, 2, 2], list(iter("abcdefghi"))], ... names=["old-index-1", "old-index-2"] ... ) >>> sample_series = Series( ... list(iter("A--AA-AAA")), index=sample_multi_index, name="sample" ... ) >>> block_sample = find_consecutive_value_blocks_in_series(source=sample_series) >>> print_pandas(block_sample) block old-index-1 old-index-2 sample 0 0 a A 1 b - c - 2 1 d A e A 3 f - 4 2 g A h A i A