[英]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.nlargest
與reset_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.