Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于文本匹配和多个字段的条件创建新字段。python_Python_Python 3.x_Pandas_List Comprehension_String Matching - Fatal编程技术网

基于文本匹配和多个字段的条件创建新字段。python

基于文本匹配和多个字段的条件创建新字段。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 药片 我喜欢它,尽管有时很糟糕。 第一类,第

我有一个这样的数据框,我想根据匹配“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新手,所以我不知道如何编写这个分类函数。