基于文本匹配和多个字段的条件创建新字段。python
我有一个这样的数据框,我想根据匹配“Review”字段中的某些单词和某些“Product”类型来分配一个新类别。我为每个类别创建了两个具有不同n-gram的列表,我需要根据列表中与“Review”和“Review”中的词语匹配的词语选择“My category”(我的类别)。如果需要,代码需要分配多个类别 记录ID 产品 复习 我的类别 123 药片 电池寿命很差。不要买。 第一类 456 笔记本电脑 喜欢时尚的设计,但电池寿命不好。 第2类 789 药片 我喜欢它,尽管有时很糟糕。 第一类,第二类基于文本匹配和多个字段的条件创建新字段。python,python,python-3.x,pandas,list-comprehension,string-matching,Python,Python 3.x,Pandas,List Comprehension,String Matching,我有一个这样的数据框,我想根据匹配“Review”字段中的某些单词和某些“Product”类型来分配一个新类别。我为每个类别创建了两个具有不同n-gram的列表,我需要根据列表中与“Review”和“Review”中的词语匹配的词语选择“My category”(我的类别)。如果需要,代码需要分配多个类别 记录ID 产品 复习 我的类别 123 药片 电池寿命很差。不要买。 第一类 456 笔记本电脑 喜欢时尚的设计,但电池寿命不好。 第2类 789 药片 我喜欢它,尽管有时很糟糕。 第一类,第
您应该使用
apply
执行此任务
from io import StringIO
from io import StringIO
data = StringIO("""
Record ID Product Review
123 Tablet Battery life sucks.
456 Laptop Love the sleek design, but battery life is bad.
789 Tablet I love it, even though it sucks sometimes.
""")
df = pd.read_csv(data, sep='\t')
def categorize(row):
"""Gets category from row
Can access columns with dot notation, e.g., row.Product
"""
# determine categories
#return categories
df['categories'] = df.apply(categorize, axis=1)
我是Python新手,所以我不知道如何编写这个分类函数。