У меня есть фрейм данных, в котором один столбец содержит URL. Я хочу сравнить его со списком строковых значений и там, где они совпадают, добавить число в новый столбец.
Столбец выглядит примерно так:
source
www.fox5.com/some_article
www.nyt.com/some_article
www.fox40news.com/some_article
www.cnn.com/another_article
...
Я хочу сравнить его с этим списком:
sources = ['fox', 'yahoo', 'abcnews', 'google', 'cnn', 'nyt', 'nbc',
'washingtonpost', 'wsj', 'huffingtonpost']
и если значение источника содержится в столбце источника, добавьте соответствующий номер расположения списка в новый столбец. Таким образом, полученный новый столбец будет выглядеть примерно так:
sources sourcenum
www.fox5.com/some_article 1
www.nyt.com/some_article 6
www.fox40news.com/some_article 1
www.cnn.com/another_article 5
... ...
Я пытался использовать цикл for со счетом:
count = 1
for x in sources:
if x in df.source.values:
df.sourcenum = count
count += 1
но на выходе просто все 0
Я также пытался использовать numpys где, но он не принимает 10 аргументов.
Список можно изменить на словарь, например, если это будет работать лучше
sources = {'fox':1, 'yahoo':2, 'abcnews':3, 'google':4, 'cnn':5, 'nyt':6,
'nbc':7, 'washingtonpost':8, 'wsj':9, 'huffingtonpost':10}
Любая помощь будет оценена, спасибо.