如何获取潘达斯数据框架的最大元素--行、列、整个数据框架

694 阅读3分钟

如何获取潘达斯数据框架的最大元素

DataFrame 是一种数据结构,代表一种特殊的二维数组,建立在多个Series 对象之上。这些是Pandas的中心数据结构--Python的一个非常流行和强大的数据分析框架。

如果你还不熟悉DataFrames和它们的工作原理,请阅读我们的《DataFrames指南》

DataFrames有能力给行和/或列命名,在某种意义上,它代表了表格

让我们导入Pandas并从一个字典中创建一个DataFrame

import pandas as pd

df_data = {
    "column1": [24, 9, 20, 24],
    "column2": [17, 16, 201, 16]
}

df = pd.DataFrame(df_data) 
print(df)

Pandas与Python有很好的集成,我们可以轻松地从字典中创建DataFrames。我们构建的df 现在包含了列和它们各自的值。

   column1  column2
0       24       17
1        9       16
2       20      201
3       24       16

每一列都有一个元素列表,我们可以搜索每_一列_、每_一行_ _或_整个DataFrame 的最大元素。

在Pandas数据框架的列中查找最大元素

为了找到_每_一列的最大元素,我们调用DataFrame 类的max() 方法,该方法返回列名和它们的最大值Series

max_elements = df.max()
print(max_elements)

这将给我们的df 中每一列的最大值,正如预期的那样。

column1     24
column2    201
dtype: int64

然而,要找到单列的max() 元素,你首先要把它隔离开来,并对这个特定的Series ,调用max() 方法。

max_element = df['column1'].max()
print(max_element)
24

查找Pandas数据框架行中的最大元素

查找每个DataFrame行的最大元素也依赖于max() 方法,但我们将axis 参数设置为1

axis 参数的默认值是0。如果axis 等于0,max() 方法将找到每一列的最大元素。另一方面,如果axis 等于1,max() 将找到每一行的最大元素。

max_elements = df.max(axis=1)
print(max_elements)

这将给我们的df 的每一行的最大值,正如预期的那样。

0     24
1     16
2    201
3     24
dtype: int64

另外,如果你想通过特定的行进行搜索,你可以通过iloc[]

print(df)

for row in df.index:
    print(f'Max element of row {row} is:', max(df.iloc[row]))

我们打印了df 以供参考,以方便验证结果,并获得了每一行的max() 元素,通过iloc[] 获得。

column1  column2
0       24       17
1        9       16
2       20      201
3       24       16

Max element of row 0 is: 24
Max element of row 1 is: 16
Max element of row 2 is: 201
Max element of row 3 is: 24

查找整个Pandas数据框架中的最大元素

最后,我们可以看看如何在整个DataFrame中找到最大元素。

基于我们之前所看到的,这应该是非常简单的。我们只需使用内置的max() 方法,并将先前创建的两个最大元素列表中的一个传给它--所有行或所有列。这是相同数据的两个面,所以保证有相同的结果。

这应该会给我们一个在整个df 的单一最高值。

max_by_columns = df.max()
max_by_rows = df.max(axis=1)

df_max = max(max_by_columns)
print("Max element based on the list of columns: ", df_max)

df_max2 = max(max_by_rows)
print("Max element based on the list of rows: ", df_max2)

这将输出。

Max element based on the list of columns:  201
Max element based on the list of rows:  201

这既是预期的,也是正确的!每一行的最大元素列表中的最大元素应该与每一列的最大元素列表中的最大元素相同,并且它们都应该与整个DataFrame的最大元素相同。

总结

在这个简短的教程中,我们看了一下如何找到Pandas DataFrame的最大元素,包括列、行和整个DataFrame实例。