pandas.core.groupby.SeriesGroupBy.indices#

property SeriesGroupBy.indices[source]#

Dict {group name -> group indices}.

The dictionary keys represent the group labels (e.g., timestamps for a time-based resampling operation), and the values are arrays of integer positions indicating where the elements of each group are located in the original data. This property is particularly useful when working with resampled data, as it provides insight into how the original time-series data has been grouped.

See also

core.groupby.DataFrameGroupBy.indices

Provides a mapping of group rows to positions of the elements.

core.groupby.SeriesGroupBy.indices

Provides a mapping of group rows to positions of the elements.

core.resample.Resampler.indices

Provides a mapping of group rows to positions of the elements.

Examples

For SeriesGroupBy:

>>> lst = ["a", "a", "b"]
>>> ser = pd.Series([1, 2, 3], index=lst)
>>> ser
a    1
a    2
b    3
dtype: int64
>>> ser.groupby(level=0).indices
{'a': array([0, 1]), 'b': array([2])}

For DataFrameGroupBy:

>>> data = [[1, 2, 3], [1, 5, 6], [7, 8, 9]]
>>> df = pd.DataFrame(
...     data, columns=["a", "b", "c"], index=["owl", "toucan", "eagle"]
... )
>>> df
        a  b  c
owl     1  2  3
toucan  1  5  6
eagle   7  8  9
>>> df.groupby(by=["a"]).indices
{1: array([0, 1]), 7: array([2])}

For Resampler:

>>> ser = pd.Series(
...     [1, 2, 3, 4],
...     index=pd.DatetimeIndex(
...         ["2023-01-01", "2023-01-15", "2023-02-01", "2023-02-15"]
...     ),
... )
>>> ser
2023-01-01    1
2023-01-15    2
2023-02-01    3
2023-02-15    4
dtype: int64
>>> ser.resample("MS").indices
defaultdict(<class 'list'>, {Timestamp('2023-01-01 00:00:00'): [0, 1],
Timestamp('2023-02-01 00:00:00'): [2, 3]})