get_unique_index_positions

trashpanda.get_unique_index_positions(source_with_duplicates: pandas.core.series.Series, keep: Union[str, bool] = 'first') pandas.core.indexes.base.Index
trashpanda.get_unique_index_positions(source_with_duplicates: pandas.core.frame.DataFrame, keep: Union[str, bool] = 'first') pandas.core.indexes.base.Index

Determines positions of unique indexes from a Series or DataFrame.

Notes

This method assumes duplicates are within the frame with duplicates. Check with index.is_unique beforehand.

Parameters
  • source_with_duplicates (Union[Series, DataFrame]) – Series or DataFrame with duplicated indexes.

  • keep (Union[str, bool]) – Determines which duplicates to keep. - first: Default; keeps all first occurrences of duplicated indexes. - last: Keeps all last occurrences of duplicated indexes. - False: Drops all duplicated indexes.

Returns

pandas.Index

Examples

>>> from pandas import DataFrame
>>> import numpy as np
>>> from doctestprinter import doctest_print
>>> sample_frame = pandas.DataFrame(
...     np.arange(5),
...     columns=["iloc"],
...     index=pandas.Index(['a', 'a', 'b', 'b', 'c'], name="index")
... )
>>> doctest_print(sample_frame)
       iloc
index
a         0
a         1
b         2
b         3
c         4

Keeping the first occurrence.

>>> get_unique_index_positions(sample_frame, "first")
Int64Index([0, 2, 4], dtype='int64')

Keeping the last occurrence.

>>> get_unique_index_positions(sample_frame, "last")
Int64Index([1, 3, 4], dtype='int64')

Dropping all duplicates.

>>> get_unique_index_positions(sample_frame, False)
Int64Index([4], dtype='int64')