pandas.api.typing.DataFrameGroupBy.idxmax — pandas 3.0.0rc0+33.g1fd184de2a documentation (original) (raw)

DataFrameGroupBy.idxmax(skipna=True, numeric_only=False)[source]#

Return index of first occurrence of maximum in each group.

Parameters:

skipnabool, default True

Exclude NA values.

numeric_onlybool, default False

Include only float, int or boolean data.

Returns:

DataFrame

Indexes of maxima in each column according to the group.

Raises:

ValueError

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

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

Series.idxmax

Return index of the maximum element.

DataFrame.idxmax

Indexes of maxima along the specified axis.

Notes

This method is the DataFrame version of ndarray.argmax.

Examples

Consider a dataset containing food consumption in Argentina.

df = pd.DataFrame( ... { ... "consumption": [10.51, 103.11, 55.48], ... "co2_emissions": [37.2, 19.66, 1712], ... "food_type": ["meat", "plant", "meat"], ... }, ... index=["Pork", "Wheat Products", "Beef"], ... )

df consumption co2_emissions Pork 10.51 37.20 Wheat Products 103.11 19.66 Beef 55.48 1712.00

By default, it returns the index for the maximum value in each column according to the group.

df.groupby("food_type").idxmax() consumption co2_emissions food_type animal Beef Beef plant Wheat Products Wheat Products