Большинство сообщений SO говорили о том, как избежать цепных назначений, например this , this .С другой стороны, меня беспокоит то, как выполнять цепные назначения, в частности, как распространять изменения обратно на исходный фрейм данных при выполнении цепных назначений.
Следующий код даст представление о том, что я хотел быдостигать.До сих пор я пробовал следующее, и цель состоит в том, чтобы распространить изменения label
обратно на df_raw
.
# different ways to target the same problem
# df presents either in view or copy of origin
a = df_raw[df_raw['ticket_id'] == 111]
b = df_raw[df_raw['ticket_id'] == 111][:]
c = df_raw.loc[df_raw['ticket_id'] == 111]
d = df_raw.query("ticket_id == 111")
a.assign(label = 2)
b.assign(label = 2)
c.assign(label = 2)
d.assign(label = 2)
Результаты:
Но ни один из этих методов не внес изменения, которые распространялись обратно в ячейки в df_raw
.
пс из-за характера моей проблемы, я не могу сделать однострочный подход, как this , aМногие непосредственные процессы будут полагаться на среднее назначение.