【发布时间】:2014-07-02 23:26:11
【问题描述】:
我有一个如下的数据框:
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)]
但是,当我运行此代码时,我只获得与第一个值对应的行,Dell 因此代码不会搜索列表中的每个单词。
还有其他方法可以解决这个问题吗?
谢谢!
【问题讨论】: