У меня есть два кадра данных следующим образом:
df1 = pd.DataFrame({"id":["01", "02", "03", "04", "05", "06"],
"string":["This is a cat",
"That is a dog",
"Those are birds",
"These are bats",
"I drink coffee",
"I bought tea"]})
df2 = pd.DataFrame({"category":[1, 1, 2, 2, 3, 3],
"keywords":["cat", "dog", "birds", "bats", "coffee", "tea"]})
Мои кадры данных выглядят следующим образом
df1:
id string
01 This is a cat
02 That is a dog
03 Those are birds
04 These are bats
05 I drink coffee
06 I bought tea
df2:
category keywords
1 cat
1 dog
2 birds
2 bats
3 coffee
3 tea
Я хотел бы иметь выходной столбец на df1, который является категорией, если хотя бы одно ключевое слово в df2 обнаружено в каждой строке в df1, в противном случае возвращает None.Ожидаемый результат должен быть следующим:
id string category
01 This is a cat 1
02 That is a dog 1
03 Those are birds 2
04 These are bats 2
05 I drink coffee 3
06 I bought tea 3
Я могу подумать о циклическом переборе ключевых слов по одному и сканировании строки по одному, но это недостаточно эффективно, если объем данных увеличивается.Могу ли я получить ваши предложения, как улучшить?Спасибо.