#python #pandas
Вопрос:
Я хочу получить значение из столбца «классификация» второй строки.
У меня есть : id = ‘D1-0021’; LeftRight = ‘R’
Поэтому с помощью этой информации я хочу, чтобы результат соответствовал соответствующей колонке классификации.
Могут ли некоторые объяснить панд, как сделать что-то вроде :
table.loc['D1-0021', where 'LeftRight' == R] get value['classification']
соответствующий вывод: «Доброкачественный»
LeftRight Age number abnormality classification subtype
id
D1-0021 L 22 2 calcification Benign NaN
D1-0021 R 22 2 calcification Benign NaN
Ответ №1:
Если вы просто хотите получить данные:
df.query('id=="D1-0021" amp; LeftRight=="R"')['classification']
Выход:
id
D1-0021 Benign
Name: classification, dtype: object
И чтобы получить строку конкретно, используйте .item()
:
df.query('id=="D1-0021" amp; LeftRight=="R"')['classification'].item()
Или:
# query to filter data
# loc to access the value:
df.query('LeftRight=="R"').loc['D1-0021','classification']
Обновление: при R
поступлении из переменной:
var = 'R'
df.query('LeftRight==@var').loc['D1-0021','classification']
Комментарии:
1. Если «R» происходит от переменной, например : leftOrRight = «R». Как заменить букву «R» на имя переменной ?
2. Спасибо! Вы не знаете, где я могу поговорить об этом ? Я не знаю, что для этого набирать в Google ^^’
3. @AubreyDekker официальные документы по запросу и индексации -хорошее начало.
Ответ №2:
Чтобы выбрать строки, значение столбца которых равно скаляру, some_value, используйте ==:
df.loc[df['column_name'] == some_value]
в приведенном ниже примере должно быть так:
table.loc[D1-0021['classification '] == Benign]
Комментарии:
1. В моем случае я хочу знать значение «классификация», зная только «идентификатор» и «левый»
2. Ах, хорошо, тогда вы могли бы использовать столбец идентификаторов. Я рад, что ты тогда сделал это.