- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个如下所示的数据框:
column_1 column_2
2 3
6 4
5 5
.
.
.
我想为上述数据框的每一行返回该行中具有最大值的列的名称;例如,对于第一行,我想返回“column_2”,对于第三行,它将返回两个列名,因为它们具有相同的值。
我尝试使用Pandas的idxmax函数来实现;但是这个函数只返回第一次出现而忽略其余的可能性;与上面第三行的示例一样,idxmax 仅返回 'column_1' 而不是 ['column_1', 'column_2']。
知道如何解决这个问题。预先感谢您的帮助。
最佳答案
对于每一行,您可以检查条目是否等于该行的最大值;这将形成一个 bool 框架。然后您可以用列名点
乘积它来选择那些为行提供True
的列名:
is_max = df.eq(df.max(axis=1), axis=0)
result = is_max.dot(df.columns + " ")
axis=1
of max
表示取每行的最大值和 eq
的 axis=0
说对齐参数(即 df.max(axis=1)
)以逐行比较,即广播 so),
得到
>>> is_max
column_1 column_2
0 False True
1 True False
2 True True
>>> result
0 column_2
1 column_1
2 column_1 column_2
关于python - pandas idxmax 返回所有具有最大值的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68214659/
问候,我有一个索引从 0 到 00.6279999999999999 的 df。 我使用 idxmax() 查找一列中最大变量的索引 - df[Column A]。假设索引是 0.5579999999
我正在尝试查找多索引 Pandas 数据帧中多列中最大值的索引。 Kommune Upplands Vallentuna... Kiruna Year Party 19
考虑 pd.Series s import pandas as pd import numpy as np np.random.seed([3,1415]) s = pd.Series(np.rand
我有一个如下所示的数据框: column_1 column_2 2 3 6 4 5 5 . . . 我想为上述数据框的每一行返回该行中
我有一个如下所示的数据框: column_1 column_2 2 3 6 4 5 5 . . . 我想为上述数据框的每一行返回该行中
我有一个由 3 列和 n 行组成的数据框。 分组前我的数据框看起来像 Index Max_Mass (kg/m) Max_Diameter (m) 1 10
我正在尝试计算夏季金牌数和冬季金牌数相对于金牌总数的最大差异。问题是我只需要考虑在夏季和冬季都至少赢得 1 枚金牌的国家。 Gold: Count of summer gold medals Gold
我有一个这样的数据框: A B C 0 1 2 1 1 3 -8 10 2 10 3 -20 3 50 7 1 我想根据每列中最大绝对值的索引重新排列它的列。
这个问题在这里已经有了答案: Pandas: Find index of the row with second highest value (2 个答案) 关闭 4 年前。 我有一个以 Count
这个问题在这里已经有了答案: Select the max row per group - pandas performance issue (2 个答案) 关闭 4 年前。 import time
我有一个看起来像这样的系列: delivery 2007-04-26 706 23 2007-04-27 705 10
我有一个包含一些财务数据的 python DataFrame,我正在尝试为其创建一些技术指标。我想弄清楚如何使用移动窗口函数来加速这个过程,而不是逐个元素地进行。对于每个索引,我想返回最近 30 天的
我有一个必须按三个级别分组的 DataFrame,然后返回最高值。每天每个唯一值都有一个返回,我想找到最高返回和细节。 data.groupby(['Company','Product','Indus
我正在尝试使用 df.loc[df.groupby(keys)['column'].idxmax()] 按最大值从组中选择行。 但是,我发现 df.groupby(keys)['column'].id
您好,我正在尝试了解 pd.DataFrame.idxmax 的效率,看看是否值得用可能更高效的自定义算法(例如,使用二进制搜索)替换它。 我想了解此方法背后的算法或至少了解其复杂性,但到目前为止我还
我有一个数据框,其中有两列,id 和 date。 df = pd.DataFrame([[1, '2019-05-20'], [1, '2019-05-20'], [1, '2018-04-23'],
我有一个数据框,其中有两列,id 和 date。 df = pd.DataFrame([[1, '2019-05-20'], [1, '2019-05-20'], [1, '2018-04-23'],
这是我的代码 from pandas import DataFrame, Series import pandas as pd import numpy as np income = DataFram
我发现 idxmax() 在 argmax() 不起作用的情况下有效(例如在整个数据帧上),但是在某些情况下我需要 argmax()?如果不是,我会把它从我的脑海中抹去。 最佳答案 有区别。 pd.D
Pandas dataframe.idxmax()函数返回请求轴上第一次出现最大值的索引。 有没有办法返回前 N 次出现的索引? 有问题的行: df2 = df.loc[df.groupby(['co
我是一名优秀的程序员,十分优秀!