What is pandas idxmax() method in Python?
The pandas library in Python provides a wide range of powerful tools for data manipulation and analysis. Among these tools is the idxmax() method, which serves the purpose of identifying the index (row label) corresponding to the maximum value along a specified axis in a Pandas DataFrame or Series.
Syntax
The syntax for the idxmax() method with DataFrame and series are as follows:
DataFrame.idxmax(axis=0, skipna=True,numeric_only=False)Series.idxmax(axis=0, skipna=True)
Parameters
axis(optional): Specifies whether to find the index along rows (axis=0) or columns (axis=1). The default value is0.skipna(optional): If set toTrue(default), the method will skipNaN(Not a Number) values while computing the result.numeric_only(optional): DefaultNone, If we assign it toTrue, it will return only numeric columns, if we assign it toFalseit will use everything. Not implemented for Series.
Return value
The return value of the
idxmax()method is the index label of the first occurrence of the maximum value along the specified axis.
Using idxmax() with a DataFrame
Consider the following example with a DataFrame:
import pandas as pddata = {'X': [6, 12, 95],'Y': [35, 4, 10],'Z': [15, 38, 25]}df = pd.DataFrame(data)max_index_col = df.idxmax()print("Index of maximum value along each column:")print(max_index_col)
Code explanation
Line 1: We import the pandas library.
Lines 3–5: We define a dictionary named
datacontaining three keys (‘X’, ‘Y’, ‘Z’), each corresponding to a list of numerical values.Line 6: We create a pandas DataFrame named
df.Line 8: We use the
idxmax()method on the DataFramedfto find the index (row label) of the maximum value along each column. The result is stored in the variablemax_index_col.Lines 9–10: We print the result where the result is a Series. The index represents the column names, and the values represent the indexes of the maximum values.
Using idxmax() with a Series
Now, let's look at an example using a pandas Series:
import pandas as pddata = {'X': 110, 'Y': 135, 'Z': 125}series = pd.Series(data)max_index = series.idxmax()print("Index of maximum value in the Series:", max_index)
Code explanation
Lines 3–4: We create a pandas Series named
seriesfrom the dictionarydata.Lines 6–7: We use the
idxmax()method on the Seriesseriesto find the index label corresponding to the maximum value in the Series. The result is stored in the variablemax_indexand print it.
Conclusion
The idxmax() method in pandas is a powerful tool for locating the indices of maximum values within DataFrames or Series. It is especially handy when we need to identify the position of the maximum value along specific axes, helping us analyze and manipulate our data effectively.
Free Resources