列にインデックスの最小値を取得するときに文字列 - パンダDATAFRAME

FAC:

私はこの上でいくつかの研究を行っているが、インデックスはタイプ「文字列」のときに簡潔な方法を見つけることができませんでした。

以下のパンダのデータフレームを考えます:

Platform | Action |    RPG    | Fighting
----------------------------------------
PC       |   4    |      6    |     9
Playstat |   6    |      7    |     5
Xbox     |   9    |      4    |     6
Wii      |   8    |      8    |     7

私は「のXbox」を返します「RPG」カラムの最小値のインデックス(プラットフォーム)を取得しようとしていました。私はそれを動作させるために管理が、それは効率的ではない、より良い/迅速/凝縮アプローチを探しています。ここで私が得たものです。

# Return the minimum value of a series of all columns values for RPG
series1 = min(ign_data.loc['RPG'])

# Find the lowest value in the series
minim = min(ign_data.loc['RPG'])

# Get the index of that value using boolean indexing
result = series1[series1 == minim].index

# Format that index to a list, and return the first (and only) element
str_result = result.format()[0]
ansev:

用途Series.idxmin

df.set_index('Platform')['RPG'].idxmin()
#'Xbox'

または@Quangホアンはコメントに示唆するもの

df.loc[df['RPG'].idxmin(), 'Platform']

もしPlatformすでにインデックス:

df['RPG'].idxmin()

EDIT

df.set_index('Platform').loc['Playstat'].idxmin()
#'Fighting'

df.set_index('Platform').idxmin(axis=1)['Playstat']
#'Fighting'

すでにインデックスの場合:

df.loc['Playstat'].idxmin()

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=12985&siteId=1