我有一个数据帧,如下所示:
Supplier ProductDescription Manufacturer
Dell computer Dell
N/A Dell computer N/A
Apple imac Apple
OfficeMax lenovo lenovo ...etc
我想通过包含特定单词但不重复计算的行过滤掉这个数据帧。所以本质上,我想保留这些包含“Dell”、“computer”或“lenovo”的行
要获得:
Supplier ProductDescription Manufacturer
Dell computer Dell
N/A Dell computer N/A
OfficeMax lenovo lenovo
我所做的是创建一个组合列:
df['combine']=df.apply(lambda x:'%s,%s,%s' % (x['Supplier'],x['Product Description'],x['Manufacturer']),axis=1)
然后我试图创建一个列表来搜索和筛选
List=('Dell' or 'computer' or 'lenovo')
df=df[df['combine'].str.contains(List)]
但是,当我运行此代码时,我只得到与第一个值对应的行,因此代码不会搜索列表中的每个单词
还有别的办法吗
谢谢
您可以使用
isin
:我添加了一个“戴尔电脑”选项。如果您希望以不同的方式输入姓名,那么您可能需要在执行此操作之前将姓名正规化。这只完全吻合
相关问题 更多 >
编程相关推荐