📌  相关文章
📜  在 Pandas 中的 Dataframe 的列和行中查找最大值和位置

📅  最后修改于: 2022-05-13 01:54:49.668000             🧑  作者: Mango

在 Pandas 中的 Dataframe 的列和行中查找最大值和位置

在本文中,我们将讨论如何在 Dataframe 的列和行中找到最大值及其索引位置。

数据帧.max()

Pandas dataframe.max()方法找到对象中的最大值并将其返回。如果输入是系列,则该方法将返回一个标量,该标量将是系列中值的最大值。如果输入是数据框,则该方法将返回一个系列,该系列在数据框中的指定轴上具有最大值。索引轴是此方法采用的默认轴。

让我们举个例子来说明如何使用这个函数。假设我们有一个数据框

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)

输出 :

dataframe-2 中的最大值

我们可以看到它返回了一系列最大值,其中索引是行名,值是每行的最大值。我们可以看到,在上面的示例中,NaN 值被跳过,同时在任何轴上查找最大值。如果需要,我们也可以包含 NaN 值。

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

Python3

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

输出 :

在 Dataframe-3 的列和行中查找最大值和位置

通过设置 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 值。

让我们举一些例子来了解如何使用它:

如何在每列中获取最大值的行索引标签

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)

输出 :

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