Панды, как выбрать столбцы, где строка имеет максимальное значение? - PullRequest
1 голос
/ 01 октября 2019

Допустим, у меня есть следующий фрейм данных:

df = pd.DataFrame({'A':[0.1,0.1,0.2],
                  'B': [0.22,0.2,0.22],
                  'C': [0.3, 0.2,0.333]})

df.index = list('abc')
df
     A     B      C
a  0.1  0.22  0.300
b  0.1  0.20  0.200
c  0.2  0.22  0.333

Как выбрать все столбцы, в которых индекс b имеет максимальное значение.

Здесь индекс имеет максимальное значение 2 в столбцах B, иC. Итак, требуемый ответ:

required_answer = ['B','C']

Мои попытки:

df[df.loc['b'] ==df.loc['b'].max()]

Ответы [ 2 ]

2 голосов
/ 01 октября 2019

Вы можете попробовать это:

df.columns[df.loc['b'] == df.loc['b'].max()].tolist()
# ['B', 'C']

1 голос
/ 01 октября 2019

Я даю вам несколько вариантов. Первый лучший:

[*df.columns[df.loc['b'].eq(df.loc['b'].max())]]

['B', 'C']

df.loc[:,df.loc['b'].eq(df.loc['b'].max())].columns.tolist()

['B', 'C']

[*df.T.index[df.loc['b'].eq(df.loc['b'].max())]]

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