Замените значения в тексте значениями Integer в словаре python и найдите его суммирование - PullRequest
2 голосов
/ 24 марта 2020

У меня есть датафрейм, который выглядит примерно так:

column1 column2
   1     apple,apple,apple
   2     ball,ball,ball
   3     cat,dog,eel
   4     dog,dog,dog
   5     apple,cat,eel
   6     apple,ball,cat

У меня есть словарь, который имеет значение для каждого слова:

{apple:1,
 ball:2,
 cat:3,
 dog:4,
 eel:5}

Я хочу использовать этот словарь для замены Значения в кадре данных и найти сумму каждой строки. Как я могу это сделать?

В конце я хочу что-то вроде этого:

column1      column2          column3 
   1     apple,apple,apple      3
   2     ball,ball,ball         6 
   3     cat,dog,eel            12
   4     dog,dog,dog            12
   5     apple,cat,eel          9
   6     apple,ball,cat         6

Ответы [ 2 ]

3 голосов
/ 24 марта 2020

IIU C split + explode, затем map значение

df.column2.str.split(',').explode().map(d).sum(level=0)
Out[286]: 
0     3
1     6
2    12
3    12
4     9
5     6
Name: column2, dtype: int64
df['column3']=df.column2.str.split(',').explode().map(d).sum(level=0)
2 голосов
/ 24 марта 2020

Другим способом является использование списка

d = {'apple':1, 'ball':2, 'cat':3, 'dog':4, 'eel':5}

df['column3'] = [sum(d[word] for word in x) for x in df.column2.str.split(',')]

Out[429]:
   column1            column2  column3
0        1  apple,apple,apple        3
1        2     ball,ball,ball        6
2        3        cat,dog,eel       12
3        4        dog,dog,dog       12
4        5      apple,cat,eel        9
5        6     apple,ball,cat        6
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...