Поиск имен столбцов в панде DataFrame, где значения строк минимальны - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть DataFrame, как показано ниже:

X = np.array([[1.0, -20, 200, 50],
              [2.0, 19, 100, 52],
              [3.0, 17, -150, 55],
              [4.0, 20, -120, 60],
              [5.0, 21, 119, 70],
              [6.0, -15, 134, -75],
              [7.0, 9, 178, -80],
              [8.0, 10, -190, 90],
              [9.0, 19, 200, 70],
              [10.0, 20, 210, 65]])

native_id1 = ['08MB005', '08ME005', '08GD006','08GH002']
native_id2 = ['08CD001', '08EF006', '08TH002', '08LO002', '07HP003', '08IK002', '09WF001','09YU001', '05KJ008', '08LK007']
X = pd.DataFrame(X, native_id2, native_id1)

Я использовал нижеприведенную функцию, которая возвращает позицию столбца или индекса, соответствующую минимальным значениям в каждой строке.

idx = np.argmin(X.values, axis=1)

, который возвращает что-то вроде:

array([1, 0, 2, 2, 0, 3, 3, 2, 0, 0], dtype=int64)

То, что я искал, было так:

08CD001    08ME005
08EF006    08MB005
08TH002    08GD006
08LO002    08GD006
07HP003    08MB005
08IK002    08GH002
09WF001    08GH002
09YU001    08GD006
05KJ008    08MB005
08LK007    08MB005

* ОБНОВЛЕНО * IЯ нашел ответ на этот вопрос, где я пытался найти имя столбца, соответствующее минимальному значению каждой строки в панде.

Ответ ниже работал:

df.idxmin(axis=1)

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Вы можете использовать это, чтобы получить необходимые столбцы:

def func(x):
    return np.argmin(x)

print(df[["Small", "Int", "Bor", "Drama"]].apply(func, axis=1))
0 голосов
/ 28 февраля 2019

Используйте DataFrame.idxmin ( документы ):

df.idxmin(axis=1)

Эквивалентно, вы можете использовать np.argmin в df.apply(np.argmin, axis=1).Но вы получаете это предупреждение:

FutureWarning: «argmin» устарел.Вместо этого используйте «idxmin».Поведение «argmin» будет исправлено, чтобы вернуть позиционный минимум в будущем.Используйте 'series.values.argmin', чтобы получить позицию минимума сейчас.

Так что idxmin рекомендуется

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...