Как я могу улучшить этот фрагмент кода визуально/производительно? [закрыто]Python

Программы на Python
Anonymous
Как я могу улучшить этот фрагмент кода визуально/производительно? [закрыто]

Сообщение Anonymous »

Я пытаюсь создать функцию, которая идентифицирует тех, кого повысили в списке кодов должностей или повысили в этом списке кодов должностей.
Изначально я использовал np.where (), пока я не осознал, что на самом деле это будет охватывать и тех, кто был понижен в должности.
Вот то, над чем я сейчас работаю, и это работает, но я немного недоволен тем, как это выглядит. Есть ли у кого-нибудь другой метод/подход для решения подобной проблемы?
В основном любопытно, есть ли у кого-нибудь критика, спасибо!
Идея такая: что любой, чья текущая группа оплаты находится в «промоакции», должен быть помечен, если он:
A) перешел туда из группы оплаты, которой нет в кортеже ИЛИ
B) предполагается, что AGM4 < GM2 < ADO3 и любого, кто продвигается по этой иерархии, следует считать повышенным

Код: Выделить всё

def index_checker(cur,prev):
promotions = ("AGM4", "GM2","ADO3")
if cur not in promotions:
return False
else:
return promotions.index(cur) > promotions.index(prev) if prev in promotions and cur in promotions else True

df["Promoted"] = np.vectorize(index)(df["PayGroup_cur"].values,df["PayGroup_prev"].values)
df[df["Promoted"]==True].to_csv(r"location.csv")

Код: Выделить всё

promotions = ("AGM4", "GM2","ADO3")
condition = (np.isin(df["PayGroup_cur"].values,promotions) & (df["PayGroup_cur"].values != df["PayGroup_prev"].values) & (promotions.index(df["PayGroup_cur"].values) > promotions.index(df["PayGroup_cur"].values)))
df["Promoted"] = np.where(condition, "Promoted", "Not Promoted")
df[df["Promoted"]=="Promoted"]
Этот подход не сработал, потому что он считал бы повышением человека, перешедшего с AD03 на AGM4. Я попытался добавить логику проверки индекса в этот список условий, но затем продолжал сталкиваться с проблемами формирования широковещательной рассылки и двусмысленностью истины.

Подробнее здесь: https://stackoverflow.com/questions/789 ... mance-wise

Вернуться в «Python»