Чтобы проиндексировать конкретную ячейку и изменить ее значение, используйте df.loc:
df.loc[df.Name == 'Snowball', 'yellow'] = 2
Для эффективной итерации по всем строкам фрейма данных используйте df.iterrows:
values_to_insert_into_yellow_by_name = {'Puppy': 1, 'London': 2, 'Snowball': 2, 'Malibu': 3}
for idx, row in df.iterrows():
name = df.loc[idx, 'Name']
insert = values_to_insert_into_yellow_by_name[name]
df.loc[idx, 'yellow'] = insert
Вы можете использовать словарь для хранения значений, которые необходимо вставить.