pandas.core.groupby.SeriesGroupBy.idxmin#

SeriesGroupBy.idxmin(skipna=True)[source]#

Return the row label of the minimum value.

If multiple values equal the minimum, the first row label with that value is returned.

Parameters:
skipnabool, default True

Exclude NA values.

Returns:
Series

Indexes of minima in each group.

Raises:
ValueError

When there are no valid values for a group. Then can happen if:

  • There is an unobserved group and observed=False.

  • All values for a group are NA.

  • Some values for a group are NA and skipna=False.

Changed in version 3.0.0: Previously if all values for a group are NA or some values for a group are NA and skipna=False, this method would return NA. Now it raises instead.

See also

numpy.argmin

Return indices of the minimum values along the given axis.

DataFrame.idxmin

Return index of first occurrence of minimum over requested axis.

Series.idxmax

Return index label of the first occurrence of maximum of values.

Examples

>>> 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.groupby(["a", "a", "b", "b"]).idxmin()
a   2023-01-01
b   2023-02-01
dtype: datetime64[s]