Подтвердить что ты не робот

Извлечь значение столбца на основе другого столбца pandas dataframe

Я как бы застрял при извлечении значения одной переменной из другой переменной. Например, следующий фрейм данных:

A  B
p1 1
p1 2
p3 3
p2 4

Как я могу получить значение A когда B=3? Каждый раз, когда я извлекал значение A, я получал объект, а не строку.

4b9b3361

Ответ 1

Вы можете использовать loc, чтобы получить серию, которая удовлетворяет вашему состоянию, а затем iloc, чтобы получить первый элемент:

In [2]: df
Out[2]:
    A  B
0  p1  1
1  p1  2
2  p3  3
3  p2  4

In [3]: df.loc[df['B'] == 3, 'A']
Out[3]:
2    p3
Name: A, dtype: object

In [4]: df.loc[df['B'] == 3, 'A'].iloc[0]
Out[4]: 'p3'

Ответ 2

df[df['B']==3]['A'], предполагая, что df является вашим pandas.DataFrame.

Ответ 3

Вы можете попробовать query, который меньше печатает:

df.query('B==3')['A']

Ответ 4

Используйте df[df['B']==3]['A'].values если вы просто хотите, чтобы сам элемент без скобок