在Pandas中查找数据框架的列和行的最大值和位置

在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

输出:

在Pandas中查找数据框架的列和行的最大值和位置

如何找到每一列的最大值?

要想找到每一列的最大值,请在Dataframe对象上调用max()方法,不要带任何参数。

# find the maximum of each column
maxValues = abc.max()
 
print(maxValues)

输出 :

在Pandas中查找数据框架的列和行的最大值和位置

我们可以看到,它返回了一系列的最大值,其中索引是列名,值是每一列的最大值。

如何找到每一行的最大值?

为了找到每一行的最大值,在Dataframe对象上调用max()方法,参数axis = 1。

# find the maximum values of each row
maxValues = abc.max(axis = 1)
print(maxValues)

输出 :

在Pandas中查找数据框架的列和行的最大值和位置

我们可以看到,它返回了一系列的最大值,其中索引是行名,数值是每一行的最大值。我们可以看到,在上面的例子中,在寻找任何轴的最大值时,NaN值被跳过。如果我们愿意,我们也可以把NaN值包括进去。

**如何在不跳过NaN的情况下找到每一列的最大值?

# find maximum value of each
# column without skipping NaN
maxValues = abc.max(skipna = False)
 
print(maxValues)

输出 :

在Pandas中查找数据框架的列和行的最大值和位置

通过把skipna=False,我们也可以包括NaN值。如果存在任何NaN值,它将被认为是最大值。

如何查找单个列或选定列的最大值?

要获得单列的最大值,请看下面的例子

# find maximum value of a
# single column 'x'
maxClm = df['x'].max()
 
print("Maximum value in column 'x': " )
print(maxClm)

输出 :

在Pandas中查找数据框架的列和行的最大值和位置

我们有另一种方法来寻找一列的最大值。

# find maximum value of a
# single column 'x'
maxClm = df.max()['x']

其结果将与上述相同。
输出:

在Pandas中查找数据框架的列和行的最大值和位置

也可以通过一个列的列表,而不是一个单一的列,以找到指定列的最大值

# find maximum values of a list of columns
maxValues = df[['x', 'z']].max()
 
print("Maximum value in column 'x' & 'z': ")
print(maxValues)

输出 :

在Pandas中查找数据框架的列和行的最大值和位置

如何获得每一列的最大值的位置?

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)

输出 :

在Pandas中查找数据框架的列和行的最大值和位置

它返回一个系列,其中包含作为索引的列名和作为索引标签的行,在该列中存在最大值。

如何找到每一行中最大值的列名?

# 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)

输出 :

在Pandas中查找数据框架的列和行的最大值和位置

它返回一个系列,包含作为索引的行索引标签和作为值的列名,其中最大值存在于该行。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程