Pythonは、列または行の最大値に対応するコンテンツを返します.


文書ディレクトリ
  • 現実シーン
  • データ
  • 方法
  • 後続
  • リアルシーン
    音声認識の効果(類似度スコアで示す)を示すデータが山積みされており、各試験者の最高スコアに対応するその対象(判別結果)を見つける必要がある.
    データ#データ#
    data = {"tet":["Anna", "Anna", "Bob", "Bob"], "name":["Candy", "Duck", "Candy", "Duck" ], "scores":["254", "390", "450", "178"]}
    df = pd.DataFrame(data) 
    df
    
    
    	tet 	name 	scores
    0 	Anna 	Candy 	254
    1 	Anna 	Duck 	390
    2 	Bob 	Candy 	450
    3 	Bob 	Duck 	178
    
    今ではアンナとDuckの点数が一番高いのがよく見えますが、これだけの人がいないと、肉眼で結果を見るのは難しく、tetscoresの値が一番高い対応するnameを見つけるしかありません.
    方法
    パースビューを直接使用してみました:(Pythonパースビューpivot_tableの使い方:クリック)
    import pandas as pd
    
    table = pd.pivot_table(df, index='tet', aggfunc=max)
    table
    
     	scores
    tet 	
    Anna 	390
    Bob 	450
    
    しかし、最大scores対応のnameに戻る方法はしばらく分かりません.
    最後に成功した方法は、groupby+dataframeのidxmax関数を使用することです.
    ind = df.groupby('tet')['scores'].idxmax()
    row = df.iloc[ind,:]
    print(ind)
    print(row)
    
    に続く
    いつ空いているか、最大最小値を返すインデックスをまとめます.python内蔵:max、min;nump:argmax、argmin; pandas:idxmax、idxmin;
    参照先:
  • pythonのpandasのDataFrameある列の最大値は行
  • です.