我有一个相当大的数据框:
一种 | 乙 | 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))] / ...
但即使是公式的那部分也会返回错误,更不用说最后的除法了。我相信一定有更简单的方法来解决这个问题。
编辑:此外,我还试图获得最大值与紧跟最大值之前的列之间的差异。我知道这是一个有点不同的问题,但我会很感激任何见解。谢谢!