当前位置: 首页 > 面试题库 >

Python Pandas为所选列的行最大值添加列

富波光
2023-03-14
问题内容

data = {‘name’ : [‘bill’, ‘joe’, ‘steve’],
‘test1’ : [85, 75, 85],
‘test2’ : [35, 45, 83],
‘test3’ : [51, 61, 45]}
frame = pd.DataFrame(data)

我想添加一个新列,以显示每一行的最大值。

所需的输出:

 name test1 test2 test3 HighScore
 bill  75    75    85    85
 joe   35    45    83    83 
 steve  51   61    45    61

有时

frame['HighScore'] = max(data['test1'], data['test2'], data['test3'])

可行,但大多数时候会出现此错误:

ValueError:具有多个元素的数组的真值不明确。 使用a.any()或a.all()

为什么有时只能工作?还有另一种方法吗?


问题答案:

frame[‘HighScore’] = frame[[‘test1’,’test2’,’test3’]].max(axis=1)
>>> frame
name test1 test2 test3 HighScore
0 bill 85 35 51 85
1 joe 75 45 61 75
2 steve 85 83 45 85



 类似资料:
  • 如果我想将一个名为“maximum_num”的新列突变到x上,其值为5.1,4.9,4.7等,我该怎么做?(我意识到糟糕的例子,因为这里都是Sepal.Length,但如果最大值每次来自不同的cols) 我想我可以用which.max但不知道如何编织。 我也试过 如何追加包含最大行值的新列? 有dplyr esque的方式吗?对base r也很满意。

  • 问题内容: 这应该是一个简单的问题,但我无法使其起作用:( 如何按另一列分组选择具有最大列值的行? 例如, 我有以下表格定义: 现在的问题是,我想先按结果分组,然后再从每组中选择一行,具体取决于哪一组具有最高的。 我试过了 但是,与其以正确的方式回报我,不如以同一个小组中最早的回报我。 有任何想法吗? 问题答案: 我本人为此进行了很多次努力,解决方案是以不同的方式考虑您的查询。 我希望其中具有该D

  • 问题内容: 我已经看到了很多解决此类问题的解决方案尤其是此SQL仅选择在Column上具有Max Value的行,但是似乎没有一个合适的解决方案: 我有以下表格布局,即附件的版本控制,这些附件绑定到实体: 输出应该是最大版本号,按group_id和Entity_id分组,如果有帮助,我只需要一个单个entity_id的列表即可: 我想出的是这种自我加入: 但是,只有在不同的实体不共享相同的组号的情

  • 问题内容: 想要改善这篇文章吗? 提供此问题的详细答案,包括引文和为什么答案正确的解释。答案不够详细的答案可能会被编辑或删除。 这个问题已经在这里有了答案 : 检索每个组中的最后一个记录-MySQL (27个答案) 去年关闭。 我有此表用于文档(此处为简化版): 如何为每个ID选择一行,而仅选择最大转速? 根据上述数据,结果应包含两行:和。我正在使用 MySQL 。 目前,我在循环中使用检查来检测

  • 问题内容: 桌子: 我想获取UserId,每个UserId的max(Date)值。即,具有最新日期的每个UserId的值。有没有一种方法可以简单地在SQL中做到这一点?(最好是Oracle) 更新: 对于任何歧义,我们深表歉意:我需要获取所有UserIds。但是对于每个UserId,仅该用户具有最新日期的那一行。 问题答案: 这将检索其my_date列值等于该用户ID的my_date最大值的所有行