猿问

在 Dataframe 中查找句子中的多个单词并转换为分数总和

我有以下数据框:


    Sentence

0   Cat is a big lion

1   Dogs are descendants of wolf

2   Elephants are pachyderm

3   Pachyderm animals include rhino, Elephants and hippopotamus

我需要创建一个 python 代码,它查看上面句子中的单词,并根据以下不同的数据框计算每个单词的总和。


Name          Score

cat             1

dog             2

wolf            2

lion            3

elephants       5

rhino           4

hippopotamus    5

例如,对于第 0 行,分数将为 1(猫)+ 3(狮子)= 4


我希望创建一个如下所示的输出。


    Sentence                                                      Value

0   Cat is a big lion                                                4

1   Dogs are descendants of wolf                                     4

2   Elephants are pachyderm                                          5

3   Pachyderm animals include rhino, Elephants and hippopotamus      14


UYOU
浏览 81回答 3
3回答

小怪兽爱吃肉

首先,您可以尝试一种基于splitandmap的方法,然后使用 计算分数groupby。v = df1['Sentence'].str.split(r'[\s.!?,]+', expand=True).stack().str.lower()df1['Value'] = (    v.map(df2.set_index('Name')['Score'])     .sum(level=0)     .fillna(0, downcast='infer'))df1                                            Sentence  Value0                                  Cat is a big lion      41                       Dogs are descendants of wolf      4  # s/dog/dogs in df2  2                            Elephants are pachyderm      53  Pachyderm animals include rhino, Elephants and...     14
随时随地看视频慕课网APP

相关分类

Python
我要回答