【发布时间】:2021-07-07 17:10:08
【问题描述】:
我正在尝试根据包含数据集不同对象名称的字符串对数据集进行分类。
数据集由 df['Name']、df['Category'] 和 df['Sub_Category'] 3 列组成,Category 和 Sub_Category 列为空。
对于每一行,如果对象的名称在列表之一中至少包含一个单词,我想检查不同的单词列表。基于此第一次检查,我想为类别列分配一个值。如果它在 2 个不同的列表中找到超过 1 个单词,我想将 2 个值归因于类别列中的对象。
此外,我希望能够识别在哪个列表中检查了哪个单词,以便为 sub_category 列分配一个值。
到目前为止,我只用一个列表就可以做到这一点,但我无法确定检查了哪个单词并且代码运行时间很长。
这是我的代码(我在其中添加了一个在我的数据集中找到的名称示例作为 df['Name']):
import pandas as pd
import numpy as np
df['Name'] = ['vitrine murale vintage','commode ancienne', 'lustre antique', 'solex', 'sculpture médievale', 'jante voiture', 'lit et matelas', 'turbine moteur']
furniture_check = ['canape', 'chaise', 'buffet','table','commode','lit']
vehicle_check = ['solex','voiture','moto','scooter']
art_check = ['tableau','scuplture', 'tapisserie']
for idx, row in df.iterrows():
for c in furniture_check:
if c in row['Name']:
df.loc[idx, 'Category'] = 'Meubles'
任何帮助将不胜感激
【问题讨论】: