搜索字符串中的单词列表并返回匹配的单词

2024-09-30 20:36:53 发布

您现在位置:Python中文网/ 问答频道 /正文

编辑: @荣@shaik moeed 下面是生成部分数据帧的代码和我面临的问题:

temp = [[1, 'blblblblblb. The quaity of research was good. blblblblb'],
        [2, 'blblblblblb. The quaity of research was average. blblblblb'],
        [3, 'blblblblblb. The quaity of research was poor. blblblblb'],
        [4, 'blblblblblb. The quaity of research was good. blblblblb']
        ]
Data = pd.DataFrame(temp,columns=['ID','Report'])
Data['Sentence']=Data['Report'].str.extract(r"([^.]*?The quaity of research was [^.]*\.)")

Quality_dic=dict([(1, 'excellent'), (2, 'good'),  (3, 'average') , (4, 'poor'), (5, 'unassessable')])



Data['Quality']=[k for k,v in Quality_dic.items() if v in  Data['Sentence'].str.split()]

不幸的是,建议的解决方案仍然不起作用。你知道吗

怎么解决这个问题有什么想法吗? 感谢大家的时间和投入


Tags: ofthereportdatatempsentencegoodaverage
2条回答
quality_dic = dict([(1, 'Excellent'), (2, 'Good'), (3, 'Average') , (4, 'Poor'), (2, 'Unassessable')])

sentence = 'The quality of the research was Poor' # note that 'Poor' here is capitalized

for rating in quality_dic:
    if quality_dic[rating] in sentence:
        print(quality_dic[rating]) # df['Quality'] = quality_dic[rating]

# or if you want a one-liner:
df['Quality'] = [quality_dic[rating] in sentence for rating in quality_dic]

我已经创建了一个df作为您的数据,并完全按照您的要求实现。你知道吗

Quality_dic中,GoodUnassessable具有相同的键。所以Good将用Unassessable重写。你知道吗

现在试试

>>> temp = [[1, 'blblblblblb. The quaity of research was good. blblblblb'],
        [2, 'blblblblblb. The quaity of research was average. blblblblb'],
        [3, 'blblblblblb. The quaity of research was poor. blblblblb'],
        [4, 'blblblblblb. The quaity of research was good. blblblblb']
        ]

>>> Data = pd.DataFrame(temp,columns=['ID','Report'])

>>> Data['Sentence']=Data['Report'].str.extract(r"([^.]*?The quaity of research was [^.]*\.)")

>>> index_col = []

>>> for index, row in Data.iterrows():
        index_col.append([k for k,v in Quality_dic.items() if v.lower() in  row['Sentence'].replace('.','').split()][0])
>>> Data["index_col"]=index_col

输出:

>>> Data

   ID    ...    index_col
0   1    ...            2
1   2    ...            3
2   3    ...            4
3   4    ...            2

[4 rows x 4 columns]

注意:

... - means columns are hiding as there is no space to display.

相关问题 更多 >