#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. В некоторых случаях я получаю более одного значения. Как я могу выбрать первое значение ?