在Pandas中查找数据框架的列和行的最大值和位置
在这篇文章中,我们将讨论如何在数据框架的列和行中找到最大值和它的索引位置。
DataFrame.max()
Pandas dataframe.max()方法找到对象中数值的最大值并返回。如果输入的是一个系列,该方法将返回一个标量,该标量将是该系列中数值的最大值。如果输入的是一个数据框架,那么该方法将返回一个系列,该系列中的最大值是数据框架中指定的轴。索引轴是该方法的默认轴。
语法: DataFrame.max(axis=None, skipna=None, level=None, numeric_only=None, **kwargs)
参数 :
axis: {指数(0),列(1)}。
skipna : 在计算结果时排除NA/null值
level : 如果坐标轴是一个多指标(分层的),沿着一个特定的层次计数,折叠成一个系列。
numeric_only :只包括浮动、int、boolean列。如果没有,将尝试使用所有数据,然后只使用数字数据。不实现系列。
返回: max:系列或数据框架(如果指定级别)。
让我们举个例子来说明如何使用这个函数。假设我们有一个Dataframe
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
输出:
如何找到每一列的最大值?
要想找到每一列的最大值,请在Dataframe对象上调用max()方法,不要带任何参数。
# find the maximum of each column
maxValues = abc.max()
print(maxValues)
输出 :
我们可以看到,它返回了一系列的最大值,其中索引是列名,值是每一列的最大值。
如何找到每一行的最大值?
为了找到每一行的最大值,在Dataframe对象上调用max()方法,参数axis = 1。
# find the maximum values of each row
maxValues = abc.max(axis = 1)
print(maxValues)
输出 :
我们可以看到,它返回了一系列的最大值,其中索引是行名,数值是每一行的最大值。我们可以看到,在上面的例子中,在寻找任何轴的最大值时,NaN值被跳过。如果我们愿意,我们也可以把NaN值包括进去。
**如何在不跳过NaN的情况下找到每一列的最大值?
# find maximum value of each
# column without skipping NaN
maxValues = abc.max(skipna = False)
print(maxValues)
输出 :
通过把skipna=False,我们也可以包括NaN值。如果存在任何NaN值,它将被认为是最大值。
如何查找单个列或选定列的最大值?
要获得单列的最大值,请看下面的例子
# find maximum value of a
# single column 'x'
maxClm = df['x'].max()
print("Maximum value in column 'x': " )
print(maxClm)
输出 :
我们有另一种方法来寻找一列的最大值。
# find maximum value of a
# single column 'x'
maxClm = df.max()['x']
其结果将与上述相同。
输出:
也可以通过一个列的列表,而不是一个单一的列,以找到指定列的最大值
# 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/空值都被排除。
语法: DataFrame.idxmax(axis=0, skipna=True)
参数:
axis : 0或’index’为行式,1或’columns’为列式
skipna : 排除NA/null值。如果整个行/列是NA,结果将是NA。
返回 : idxmax : 系列
让我们举一些例子来了解如何使用它。
如何获得每一列中最大值的行索引标签。
# 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)
输出 :
它返回一个系列,其中包含作为索引的列名和作为索引标签的行,在该列中存在最大值。
如何找到每一行中最大值的列名?
# 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)
输出 :
它返回一个系列,包含作为索引的行索引标签和作为值的列名,其中最大值存在于该行。