小编Ric*_*tra的帖子

查找熊猫列子集中的最大值和第二个最大值之间的差异

我有一个相当大的数据框:

一种 C D
0 17 36 45 54
1 18 23 17 17
2 74 47 8 46
3 48 38 96 83

我正在尝试创建一个新列,它是(列的最大值)-(第二个最高值)/(第二个最高值)。

在这个例子中,它看起来像:

一种 C D 差异
0 17 36 45 54 .20
1 18 23 17 17 .28
2 74 47 8 46 .57
3 48 38 96 83 .16

我试过 df['diff'] = df.loc[:, 'A': 'D'].max(axis=1) - df.iloc[:df.index.get_loc(df.loc[:, 'A': 'D'].idxmax(axis=1))] / ...

但即使是公式的那部分也会返回错误,更不用说最后的除法了。我相信一定有更简单的方法来解决这个问题。

编辑:此外,我还试图获得最大值与紧跟最大值之前的列之间的差异。我知道这是一个有点不同的问题,但我会很感激任何见解。谢谢!

python numpy pandas

6
推荐指数
1
解决办法
84
查看次数

标签 统计

numpy ×1

pandas ×1

python ×1