首页 > 解决方案 > 如何在 pandas 数据框中突出显示和计算特定关键字

问题描述

对于Textmy 列中的每一行df,我想要执行以下操作:

  1. 突出显示关键字gross, suck, singing&ponzi

  2. 统计每行关键字的个数,并将它们存储在一Count列中

import pandas as pd

data = {'Text': ['The bread tastes good','Tuna is gross','Teddy is a beach bum','Angela suck at singing!','oneCoin was a ponzi scheme'],
        'ID': [1001,1002,1003,1004,1005]
        }

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

print(df)


所需的输出应包括该Count列,如下所示:

在此处输入图像描述

我的尝试(不是最好的!你可以忽略这个):

# keyword list
key_words = ['gross','suck','singing','ponzi']

# highlight the keywords
df['Text'].applymap(lambda x: "background-color: yellow" if x else "")

# count the keywords present in each row

df['Count'] = df['Text'].str.count(r"\b(?:{})\b".format("|".join(key_words)))


高度赞赏所有尝试!

标签: pythonregexpandas

解决方案


使用str,找到所有。那会给你一个清单。使用 str.len() 计算每个列表中的元素

df['count']=df['Text'].str.findall('|'.join(key_words)).str.len()
df

推荐阅读