keep_consecutive_values_of_series

trashpanda.keep_consecutive_values_of_series(source: pandas.core.series.Series, keep: str = 'first') pandas.core.series.Series

Keeps consecutive values of a Series.

Warning

In development and not fully tested.

Parameters
  • source – Series from which consecutive values should be kept.

  • keep – Keep the ‘first’ or ‘last’ occurrence.

Returns

Series

Notes

Added in 1.2

Examples

Keeping all first occurances compared to pandas.Series.drop_duplicates.

>>> from pandas import Series
>>> sample_series = Series(list(iter("A--AA-AAA")))
>>> consecutive_first = keep_consecutive_values_of_series(
...     source=sample_series, keep="first"
... )
>>> drop_dup_first = sample_series.drop_duplicates(keep="first")
>>> print_compare(
...     sample_series, consecutive_first, drop_dup_first,
...     labels=["sample", "consec-first", "consec-first"]
... )
   sample  consec-first  consec-first
0       A             x             x
1       -             x             x
2       -
3       A             x
4       A
5       -             x
6       A             x
7       A
8       A

Keeping all last occurances compared to pandas.Series.drop_duplicates.

>>> consecutive_last = keep_consecutive_values_of_series(
...     source=sample_series, keep="last"
... )
>>> drop_dup_last = sample_series.drop_duplicates(keep="last")
>>> print_compare(
...     sample_series, consecutive_last, drop_dup_last,
...     labels=["sample", "consec-last", "consec-last"]
... )
   sample  consec-last  consec-last
0       A            x
1       -
2       -            x
3       A
4       A            x
5       -            x            x
6       A
7       A
8       A            x            x