Продолжайте получать «TypeError: только целочисленные скалярные массивы могут быть преобразованы в скалярный индекс» при попытке манипулировать строками в фреймворке panda - PullRequest
0 голосов
/ 10 июля 2020

Я пытаюсь использовать код, который работал в прошлом, чтобы циклически перемещаться по столбцу в кадре данных, подсчитывать количество вхождений списка слов и устанавливать эти значения в новый столбец.

По сути, у меня есть столбец текста, в котором я хочу подсчитать количество раз «cough | hack | et c». отображается в каждой ячейке столбца. К сожалению, когда я запускаю этот код, я получаю:

TypeError: only integer scalar arrays can be converted to a scalar index

Я думаю, что это проблема dtypes, поскольку все они являются объектами.

Однако

  1. Я работаю со строками, поэтому я думал, что объект в порядке, и

  2. когда я пытаюсь изменить dtypes to int32 для числовых переменных, я получаю то же самое ошибка. Я также go та же ошибка при попытке объединить текст в два столбца. Я думаю, что я упускаю какую-то глупость, но мне нужна помощь. выше.

1 Ответ

0 голосов
/ 10 июля 2020

Ваш код выглядит недействительным, функция, которую вы определяете, и функция, которую вы вызываете из лямбда, отличаются

Насколько я понимаю ваши требования, это работает

df = pd.DataFrame([["term1, term2, termX"],["some text termX"]], columns=["text_variable"])
df["X_count"] = df.text_variable.str.findall(r"(term1|term2|termX)").apply(lambda r: len(r))
df

вывод

    text_variable   X_count
0   term1, term2, termX 3
1   some text termX 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...