Я новичок в pandas и создаю новые столбцы на основе условий из других существующих столбцов, используя следующий код:
df.loc[(df.item1_existing=='NO') & (df.item1_sold=='YES'),'unit_item1']=1
df.loc[(df.item2_existing=='NO') & (df.item2_sold=='YES'),'unit_item2']=1
df.loc[(df.item3_existing=='NO') & (df.item3_sold=='YES'),'unit_item3']=1
По сути, это означает, что если элемент НЕ существует ('НЕТ') и товар продан (' ДА '), затем дайте мне 1. Это работает для создания 3 новых столбцов, но я думаю, что есть лучший способ.Как видите, в названии столбцов есть повторяющаяся строка: «_existing» и «_sold».Я пытаюсь создать цикл for, который будет искать имя столбца, заканчивающегося этим конкретным словом, и объединять начало, что-то вроде этого:
unit_cols = ['item1','item2','item3']
for i in unit_cols:
df.loc[('df.'+i+'_existing'=='NO') & ('df'+i+'_sold'=='YES'),'unit_'+i]=1
, но, конечно, это не работает,Как я уже сказал, я могу заставить его работать с первоначальным примером, но мне хотелось бы иметь меньше строк кода вместо повторения одного и того же кода, потому что мне нужно создать несколько столбцов таким образом, а не только три.Есть ли способ сделать это проще?цикл for лучший вариант?Спасибо.