найдите одно значение в фрейме данных pandas

#python #pandas #dataframe

Вопрос:

Я перепробовал несколько способов. У меня есть фрейм данных ниже, и у меня есть идентификатор EMP от другого процесса. Я хочу найти имя EMP на основе идентификатора EMP.

 EMP ID  Name EMP    Location
1      John A       New York
2      Paul         London
3      Adam K       London
4      Lawrence L   London

below code in not working 

emp_name= df['EMP ID']==id_no
print(emp_name[Name Emp])
 

Мне нужно имя — Пол для идентификатора EMP =2

Передаю ли я идентификатор EMP прямо в кадре данных? Я также попробовал df.query. Я делаю что-то не так?

Ответ №1:

Таким образом df["EMP ID"]==id_no , вы получите ряд логических значений, которые представляют собой результат поэлементного сравнения:

 df["EMP ID"] == 2

0    False
1     True
2    False
3    False
Name: EMP ID, dtype: bool
 

Предполагая EMP ID , что каждый из них уникален Name EMP , вы можете создать новую серию, которая может действовать как диктант:

 s = df.set_index("EMP ID")["Name EMP"]
s[id_no]
 

Выход:

 "Paul"
 

Комментарии:

1. Спасибо. что делать, если у меня нет уникального в каждом конкретном случае, и я хочу найти значение, основанное на условии.

Ответ №2:

 df.loc[df['EMP ID']==id_no]['Name EMP']

 

Это вернет «Paul» в качестве вывода для id_no=2

Комментарии:

1. Большое спасибо. это хорошо. как я могу включить другое условие, например .. EMP_id= » и местоположение = »

2. df.loc[(df['EMP ID']==id_no) amp; (df['Location']=="London")]['Name EMP']

3. В некоторых случаях я получаю более одного значения. Как я могу выбрать первое значение ?