小编prc*_*bnt的帖子

如何获取pandas DataFrame中第二大行值的列名

我有一个非常简单的问题 - 我认为 - 但似乎我无法绕过这个问题.我是Python和Pandas的初学者.我搜索了论坛,但无法获得符合我需要的(最近)答案.

我有一个这样的数据框:

df = pd.DataFrame({'A': [1.1, 2.7, 5.3], 'B': [2, 10, 9], 'C': [3.3, 5.4, 1.5], 'D': [4, 7, 15]}, index = ['a1', 'a2', 'a3'])
Run Code Online (Sandbox Code Playgroud)

这使:

          A   B    C   D
    a1  1.1   2  3.3   4
    a2  2.7  10  5.4   7
    a3  5.3   9  1.5  15
Run Code Online (Sandbox Code Playgroud)

我的问题很简单:我想添加一列,给出每行第二个最大值的列名.

我写了一个简单的函数,它返回每行的第二个最大值

def get_second_best(x):
    return sorted(x)[-2]

df['value'] = df.apply(lambda row: get_second_best(row), axis=1)
Run Code Online (Sandbox Code Playgroud)

这使:

      A   B    C   D  value
a1  1.1   2  3.3   4    3.3
a2  2.7  10  5.4   7 …
Run Code Online (Sandbox Code Playgroud)

python sorting numpy dataframe pandas

7
推荐指数
2
解决办法
1666
查看次数

标签 统计

dataframe ×1

numpy ×1

pandas ×1

python ×1

sorting ×1