我有一个带有Gold
和Gold.1
列的DataFrame。我想找到这两列之差最大的行。
对于以下DataFrame,这应该返回第6行。
df
Out:
Gold Gold.1
0 2 1
1 1 4
2 6 9
3 4 4
4 4 8
5 5 5
6 5 2 ---> The difference is maximum (3)
7 5 9
8 5 3
9 5 6
我尝试使用以下内容:
df.where(max(df['Gold']-df['Gold.1']))
但是,这引发了ValueError:
df.where(max(df ['Gold']-df ['Gold.1']))
追溯(最近一次通话):
文件“”,第1行,在
df.where(max(df ['Gold']-df ['Gold.1']))
文件“../python3.5/site-packages/pandas/core/generic.py”,第5195行,其中
引发错误)
_where中的文件“../python3.5/site-packages/pandas/core/generic.py”,行4936
引发ValueError('条件数组必须与'
ValueError:数组条件的形状必须与self相同
如何找到满足此条件的行?
最佳答案
可以使用.where
代替.idxmax
:
(df['Gold'] - df['Gold.1']).idxmax()
Out: 6
这将返回差异最大的索引。
如果要查找具有最大绝对差的行,则可以先调用
.abs()
。(df['Gold'] - df['Gold.1']).abs().idxmax()
Out: 4
关于python - 查找两列之间最大差异的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40952450/