簡體   English   中英

獲取數據框中 n 個最大值的行名和列名

[英]get row and column names of n maximum values in dataframe

對於數據框

import pandas as pd
df=pd.DataFrame({'col1':[1,2],'col2':[4,5]},index=['row1','row2'])
print df
      col1  col2
row1     1     4
row2     2     5

我想獲取 2 個最大值的行名和列名以及相應的最大值,以便結果表達式返回如下內容:

[(row1,col2,4)(row2,col2,5)]

在熊貓中最簡潔的方法是什么?

您可以使用stack來創建Series ,然后Series.nlargestreset_index並通過列表理解最后創建tuples

print (df)
      col1  col2
row1     1     4
row2     2     5

df1 = df.stack().nlargest(2).reset_index()
print (df1)
  level_0 level_1  0
0    row2    col2  5
1    row1    col2  4

tuples = [tuple(x) for x in df1.values]
print (tuples)
[('row2', 'col2', 5), ('row1', 'col2', 4)]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM