Добавление значений в ячейку в Pandas - PullRequest
1 голос
/ 19 января 2020

Я пытаюсь добавить значения в ячейки одного столбца в Pandas Dataframe. Фрейм данных создан:

data = [['ID_123456', 'example=1(abc)'], ['ID_123457', 'example=1(def)'], ['ID_123458', 'example=1(try)'], ['ID_123459', 'example=1(try)'], ['ID_123460', 'example=1(try),2(test)'], ['ID_123461', 'example=1(try),2(test),9(yum)'], ['ID_123462', 'example=1(try)'], ['ID_123463', 'example=1(try),7(test)']]

df = pd.DataFrame(data, columns = ['ID', 'occ'])

display(df)

Таблица выглядит следующим образом:

ID          occ
ID_123456   example=1(abc)
ID_123457   example=1(def)
ID_123458   example=1(try)
ID_123459   example=1(test)
ID_123460   example=1(try),2(test)
ID_123461   example=1(try),2(test),9(yum)
ID_123462   example=1(test)
ID_123463   example=1(try),7(test)

С ней связана следующая ссылка, но мне не удалось выполнить команду на моем фрейме данных.

Суммирование всех целых чисел в PANDAS DataFrame "ячейка"

Команда выдает ошибку "строковый индекс вне диапазона".

Выходные данные должно выглядеть так:

ID          occ                              count
ID_123456   example=1(abc)                     1
ID_123457   example=1(def)                     1
ID_123458   example=1(try)                     1
ID_123459   example=1(test)                    1
ID_123460   example=1(try),2(test)             3
ID_123461   example=1(try),2(test),9(yum)      12
ID_123462   example=1(test)                    1
ID_123463   example=1(try),7(test)             8

1 Ответ

2 голосов
/ 19 января 2020

Если хотите суммировать все числа в столбце occ, используйте Series.str.extractall, преобразуйте в целые числа с sum:

df['count'] = df['occ'].str.extractall('(\d+)')[0].astype(int).sum(level=0)
print (df)
          ID                            occ  count
0  ID_123456                 example=1(abc)      1
1  ID_123457                 example=1(def)      1
2  ID_123458                 example=1(try)      1
3  ID_123459                 example=1(try)      1
4  ID_123460         example=1(try),2(test)      3
5  ID_123461  example=1(try),2(test),9(yum)     12
6  ID_123462                 example=1(try)      1
7  ID_123463         example=1(try),7(test)      8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...