Я считаю, что есть простая проблема.У меня есть pandas dataframe df
, который выглядит примерно так:
data = [{"Text" : "Dog", "Dog" : 1},
{"Text" : "Cat", "Dog" : 0},
{"Text" : "Mouse", "Dog" : 0},
{"Text" : "Dog", "Dog" : 1}]
df = pd.DataFrame(data)
Я пытаюсь найти в столбце Text
несколько ключевых слов и посчитать, сколько раз они появляются в каждой ячейке.Предполагается, что результат будет сохранен в новом столбце, который показывает, сколько раз было найдено конкретное ключевое слово.Предполагается, что результат будет похож на столбец Dog
.
Я пытался использовать pandas
str.count
.Работает просто отлично.Но в тот момент, когда я пытаюсь сохранить результат в новом столбце, у меня возникают проблемы:
mykewords = ('Cat', 'Mouse')
df['Cat'] = df.Text.str.count("Cat")
Я получаю следующее сообщение об ошибке:
A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_indexer,col_indexer] = value instead
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
if __name__ == '__main__':
У меня два вопроса:
- Что я делаю не так и как я могу это исправить?
- Как можно просмотреть все ключевые слова в
mykeywords
и получить столбец для каждого?
Большое спасибо за любую помощь заранее!