Pandas:如何找到多列上的最大值


您可以使用以下方法来查找 pandas DataFrame 中多列的最大值:

方法 1:查找多列中的最大值

 df[[' col1 ', ' col2 ', ' col3 ']]. max (axis= 1 )

方法 2:添加包含多列中最大值的新列

 df[' new_col '] = df[[' col1 ', ' col2 ', ' col3 ']]. max (axis= 1 )

以下示例展示了如何在实践中通过以下 pandas DataFrame 使用这些方法:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' player ': ['A', 'B', 'C', 'D', 'E', 'F', 'G'],
                   ' points ': [28, 17, 19, 14, 23, 26, 5],
                   ' rebounds ': [5, 6, 4, 7, 14, 12, 9],
                   ' assists ': [10, 13, 7, 8, 4, 5, 8]})

#view DataFrame
print (df)

  player points rebound assists
0 to 28 5 10
1 B 17 6 13
2 C 19 4 7
3 D 14 7 8
4 E 23 14 4
5 F 26 12 5
6 G 5 9 8

示例 1:查找多列中的最大值

以下代码显示如何查找每行中得分和篮板数列中的最大值:

 #find max value across points and rebounds columns
df[[' points ', ' rebounds ']]. max (axis= 1 )

0 28
1 17
2 19
3 14
4 23
5 26
6 9
dtype: int64

以下是如何解释结果:

  • 第一行的得分和篮板栏中的最大值为28
  • 第二行的得分和篮板栏中的最大值为17
  • 第三行的得分和篮板栏中的最大值为19

等等。

示例 2:添加一个包含多列中最大值的新列

以下代码演示了如何向 DataFrame 添加新列,其中包含点和反弹列中每行的最大值:

 #add new column that contains max value across points and rebounds columns
df[' max_points_rebs '] = df[[' points ', ' rebounds ']]. max (axis= 1 )

#view updated DataFrame
print (df)

  player points rebounds assists max_points_rebs
0 A 28 5 10 28
1 B 17 6 13 17
2 C 19 4 7 19
3 D 14 7 8 14
4 E 23 14 4 23
5 F 26 12 5 26
6 G 5 9 8 9

标题为max_points_rebs的新列现在包含 DataFrame 中每行的点和反弹列中的最大值。

其他资源

以下教程解释了如何在 pandas 中执行其他常见任务:

Pandas:如何将列移动到 DataFrame 前面
Pandas:如何检查列是否包含字符串
Pandas:如何向 DataFrame 添加空列

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注