Во-первых, вам следует избегать создания переменного числа переменных.Вместо этого вы можете использовать list
:
values = ['galaxy-S9', 'note-9', 'galaxy-a6', 'Huawei', 'P20', 'Apple', 'Iphone-X']
Затем вы выполняете итерацию строк и, при этом, обновляете всю серию каждый раз, когда выполняете итерацию строки .Это неэффективно и неверно.Лучшая идея - итерировать ваш список значений и использовать логическое индексирование Pandas:
for value in values:
mask = df['URL'].str.contains(value, regex=False)
df.loc[mask, 'Model'] = value
df.loc[mask, 'Brand'] = 'Samsung'
Обратите внимание, что вам не нужно вызывать str
для объектов, которые уже являются строками.