Pandas 使用pandas查找两列或多列的最大值
在本文中,我们将介绍如何使用Pandas查找数据集中两列或多列的最大值。Pandas是一个用于数据处理和分析的Python库,它能够轻松地处理和操作具有不同数据类型的表格数据。
在我们开始之前,让我们先创建一个简单的数据集,包含三列:A,B和C:
import pandas as pd
df = pd.DataFrame({
'A' : [35, 73, 91, 16, 47],
'B' : [25, 82, 54, 13, 75],
'C' : [42, 19, 35, 68, 51]
})
我们可以使用.head()方法来打印数据集的前几行,如下所示:
print(df.head())
输出:
A B C
0 35 25 42
1 73 82 19
2 91 54 35
3 16 13 68
4 47 75 51
阅读更多:Pandas 教程
使用.max()方法查找最大值
Pandas为数据集中所有数值型列提供了.max()方法,它可以返回每个列的最大值。让我们看一下如何使用它来查找列A和B的最大值:
max_AB = df[['A', 'B']].max()
print(max_AB)
输出:
A 91
B 82
dtype: int64
上述代码片段中,我们首先使用双括号“[[ ]]”选取了数据集中的列A和B,然后使用.max()方法计算它们的最大值,并将结果存储在max_AB变量中。最后,我们使用print语句打印了max_AB变量的值。
类似地,如果我们想要查找列A、B和C的最大值,我们可以使用以下代码:
max_ABC = df[['A', 'B', 'C']].max()
print(max_ABC)
输出:
A 91
B 82
C 68
dtype: int64
在这个例子中,我们选取了列A、B和C,并使用.max()方法计算它们的最大值。结果存储在max_ABC变量中,并使用print语句输出其值。
使用.apply()方法查找最大值
.apply()方法是另一种查找最大值的方法。该方法可以使用自定义函数计算每行或每列的最大值,并创建一个包含这些最大值的新列或新行。让我们看一下如何使用它来查找列A和B的最大值:
def max_for_cols(row):
return max(row['A'], row['B'])
df['max_AB'] = df.apply(max_for_cols, axis=1)
print(df)
输出:
A B C max_AB
0 35 25 42 35
1 73 82 19 82
2 91 54 35 91
3 16 13 68 16
4 47 75 51 75
在这段代码中,我们首先定义了一个名为max_for_cols的函数。这个函数对于每一行,使用max()方法计算列A和B的最大值,并将其返回。接下来,我们使用.apply()方法,将max_for_cols函数应用到每一行上,并将计算结果存储在新创建的max_AB列中。最后,我们使用print语句输出包含新列的数据集。
类似地,如果我们想要查找列A、B和C的最大值,我们可以使用以下代码:
def max_for_cols(row):
return max(row['A'], row['B'], row['C'])
df['max_ABC'] = df.apply(max_for_cols, axis=1)
print(df)
输出:
A B C max_AB max_ABC
0 35 25 42 35 42
1 73 82 19 82 82
2 91 54 35 91 91
3 16 13 68 16 68
4 47 75 51 75 75
在这个例子中,我们定义了一个名为max_for_cols的函数,它计算了每行列A、B和C的最大值,并将其返回。使用.apply()方法将该函数应用于每行,并将计算结果存储在新创建的max_ABC列中。
使用.nlargest()方法查找最大值
.nlargest()方法是一种查找最大值的高级方法,它返回每个数值型列的前n个最大值。让我们看一下如何使用它来查找列A和B的最大值:
max_AB = df[['A', 'B']].nlargest(n=1, columns=['A'])
print(max_AB)
输出:
A B
2 91 54
在这段代码中,我们首先使用双括号“[[ ]]”选取了数据集中的列A和B,然后使用.nlargest()方法计算它们的最大值,并将结果存储在max_AB变量中。nlargest()方法接收两个参数,n和columns,它们分别指定返回前n个最大值和用于计算最大值的列。在我们的例子中,我们想要返回列A中的最大值,因此我们使用了nlargest(n=1, columns=[‘A’])。
类似地,如果我们想要查找列A、B和C的最大值,我们可以使用以下代码:
max_ABC = df[['A', 'B', 'C']].nlargest(n=1, columns=['A'])
print(max_ABC)
输出:
A B C
2 91 54 35
在这个例子中,我们选取了列A、B和C,并使用.nlargest()方法计算它们的最大值。由于我们想要返回列A中的最大值,所以我们使用了nlargest(n=1, columns=[‘A’])。记住,nlargest()方法将返回前n个最大值,而我们指定n=1,因此返回的结果只包含一行。
总结
本文介绍了三种查找Pandas数据集中两列或多列最大值的方法:使用.max()方法、使用.apply()方法和使用.nlargest()方法。这些方法都可以帮助我们在处理数据集时快速、方便地查找最大值。