Извлечь значение столбца на основе другого столбца pandas dataframe
Я как бы застрял при извлечении значения одной переменной из другой переменной. Например, следующий фрейм данных:
A B
p1 1
p1 2
p3 3
p2 4
Как я могу получить значение A
когда B=3
? Каждый раз, когда я извлекал значение A
, я получал объект, а не строку.
Ответы
Ответ 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
если вы просто хотите, чтобы сам элемент без скобок