在 Pandas 中的 Dataframe 的列和行中查找最大值和位置
在本文中,我们将讨论如何在 Dataframe 的列和行中找到最大值及其索引位置。
数据帧.max()
Pandas dataframe.max()方法找到对象中的最大值并将其返回。如果输入是系列,则该方法将返回一个标量,该标量将是系列中值的最大值。如果输入是数据框,则该方法将返回一个系列,该系列在数据框中的指定轴上具有最大值。索引轴是此方法采用的默认轴。
Syntax : DataFrame.max(axis=None, skipna=None, level=None, numeric_only=None, **kwargs)
Parameters :
axis : {index (0), columns (1)}
skipna : Exclude NA/null values when computing the result
level : If the axis is a MultiIndex (hierarchical), count along a particular level, collapsing into a Series
numeric_only : Include only float, int, boolean columns. If None, will attempt to use everything, then use only numeric data. Not implemented for Series.
Returns : max : Series or DataFrame (if level specified)
让我们举个例子来说明如何使用这个函数。假设我们有一个数据框
Python3
import numpy as np
import pandas as pd
# List of Tuples
matrix = [(10, 56, 17),
(np.NaN, 23, 11),
(49, 36, 55),
(75, np.NaN, 34),
(89, 21, 44)
]
# Create a DataFrame
abc = pd.DataFrame(matrix, index = list('abcde'), columns = list('xyz'))
# output
abc
Python3
# find the maximum of each column
maxValues = abc.max()
print(maxValues)
Python3
# find the maximum values of each row
maxValues = abc.max(axis = 1)
print(maxValues)
Python3
# find maximum value of each
# column without skipping NaN
maxValues = abc.max(skipna = False)
print(maxValues)
Python3
# find maximum value of a
# single column 'x'
maxClm = df['x'].max()
print("Maximum value in column 'x': " )
print(maxClm)
Python3
# find maximum value of a
# single column 'x'
maxClm = df.max()['x']
Python3
# find maximum values of a list of columns
maxValues = df[['x', 'z']].max()
print("Maximum value in column 'x' & 'z': ")
print(maxValues)
Python3
# find the index position of maximum
# values in every column
maxValueIndex = df.idxmax()
print("Maximum values of columns are at row index position :")
print(maxValueIndex)
Python3
# find the column name of maximum
# values in every row
maxValueIndex = df.idxmax(axis = 1)
print("Max values of row are at following columns :")
print(maxValueIndex)
输出:
如何找到每列的最大值?
要查找每列的最大值,请在不带任何参数的情况下调用 Dataframe 对象的 max() 方法。
Python3
# find the maximum of each column
maxValues = abc.max()
print(maxValues)
输出 :
我们可以看到它返回了一系列最大值,其中索引是列名,值是每列的最大值。
如何找到每一行的最大值?
要查找每行的最大值,请在 Dataframe 对象上调用 max() 方法,参数轴 = 1。
Python3
# find the maximum values of each row
maxValues = abc.max(axis = 1)
print(maxValues)
输出 :
我们可以看到它返回了一系列最大值,其中索引是行名,值是每行的最大值。我们可以看到,在上面的示例中,NaN 值被跳过,同时在任何轴上查找最大值。如果需要,我们也可以包含 NaN 值。
如何在不跳过 NaN 的情况下找到每列的最大值?
Python3
# find maximum value of each
# column without skipping NaN
maxValues = abc.max(skipna = False)
print(maxValues)
输出 :
通过设置 skipna=False 我们也可以包含 NaN 值。如果存在任何 NaN 值,则将其视为最大值。
如何找到单个列或选定列的最大值?
要获取单个列的最大值,请参见以下示例
Python3
# find maximum value of a
# single column 'x'
maxClm = df['x'].max()
print("Maximum value in column 'x': " )
print(maxClm)
输出 :
我们有另一种方法来找到列的最大值:
Python3
# find maximum value of a
# single column 'x'
maxClm = df.max()['x']
结果将与上述相同。
输出:
也可以传递列列表而不是单个列来查找指定列的最大值
Python3
# find maximum values of a list of columns
maxValues = df[['x', 'z']].max()
print("Maximum value in column 'x' & 'z': ")
print(maxValues)
输出 :
如何获得每列最大值的位置?
DataFrame.idxmax(): Pandas dataframe.idxmax( )方法返回请求轴上第一次出现最大值的索引。在查找任何索引中最大值的索引时,将排除所有 NA/null 值。
Syntax: DataFrame.idxmax(axis=0, skipna=True)
Parameters :
axis : 0 or ‘index’ for row-wise, 1 or ‘columns’ for column-wise
skipna : Exclude NA/null values. If an entire row/column is NA, the result will be NA
Returns : idxmax : Series
让我们举一些例子来了解如何使用它:
如何在每列中获取最大值的行索引标签
Python3
# find the index position of maximum
# values in every column
maxValueIndex = df.idxmax()
print("Maximum values of columns are at row index position :")
print(maxValueIndex)
输出 :
它返回一个系列,其中包含作为索引的列名和作为索引标签的行,其中最大值存在于该列中。
如何在每一行中找到最大值的列名?
Python3
# find the column name of maximum
# values in every row
maxValueIndex = df.idxmax(axis = 1)
print("Max values of row are at following columns :")
print(maxValueIndex)
输出 :
它返回一个包含行索引标签作为索引和列名称作为值的系列,其中最大值存在于该行中。