Python 数据帧中n个最高值的位置
我想找到数据帧中3个最高值(10、9和6)的位置[行索引、列索引] 预期结果是:Python 数据帧中n个最高值的位置,python,pandas,Python,Pandas,我想找到数据帧中3个最高值(10、9和6)的位置[行索引、列索引] 预期结果是: df = pd.DataFrame([[1, 10, 1], [6, 1, 1], [1,1,9]]) 用于: 如果需要嵌套列表: a = df.stack().nlargest(3).index.tolist() print (a) [(0, 1), (2, 2), (1, 0)] 您可以使用idxmax方法: a = list(map(list, df.stack().nlargest(3).index))
df = pd.DataFrame([[1, 10, 1], [6, 1, 1], [1,1,9]])
用于:
如果需要嵌套列表:
a = df.stack().nlargest(3).index.tolist()
print (a)
[(0, 1), (2, 2), (1, 0)]
您可以使用
idxmax
方法:
a = list(map(list, df.stack().nlargest(3).index))
print (a)
[[0, 1], [2, 2], [1, 0]]
如果希望阵列同时具有两个坐标:
[3]中的:df.idxmax().reset_index().value
出[3]:
数组([[0,1],[1,0],[2,2]]
您可以执行以下操作:
In [2]: df.idxmax()
Out[2]:
0 1
1 0
2 2
这将设置一个列“max”,该列按列显示最大值。之后,您可以使用df获取值。如下所示应用:
df['max'] = df.idxmax(axis=1)
结果:
my_list = df.apply(lambda value: [value.name, value['max']], axis=1).to_list()
my_list = df.apply(lambda value: [value.name, value['max']], axis=1).to_list()
[[0, 1], [1, 0], [2, 2]]