Pandas:搜索并返回包含列

时间:2016-05-20 20:14:20

标签: python pandas dataframe

我有一个类似于以下结构的数据框:

NDB_No  Shrt_Desc   Water_(g)   Energ_Kcal  Protein_(g) ...   
01001   BUTTER,WITH SALT    15,87   717 0,85  
01002   BUTTER,WHIPPED,W/ SALT  16,72   718 0,49  
...  
01004   CHEESE,BLUE 42,41   353 21,4    28,74  
01005   CHEESE,BRICK    41,11   371 23,24   29,68 

我想获得一个数据框,其中只包含Shrt_Desc列中列有to_be_found = [BUTTER, PASTA, ..etc]但不是CHEESE的项目的行 要找到的单词(在上面的列表中)可以是Shrt_Desc中的任何位置,不一定在开头,如上面的SALT

我该如何处理?
谢谢!

1 个答案:

答案 0 :(得分:0)

以下代码解决了这个问题(基于上面的@piRSquared提示)。

import pandas as pd
from collections import Counter

food_info = pd.read_excel("ABBREV.xlsx")
dfi_1 = food_info


to_be_found = ['BUTTER', 'CHEESE', 'MILK', 'OIL', 'CORN', 'SALT', 'INF', 'PEPPER', 'PASTA', 'GLUTEN-FREE']
found = []
dfi_6 =  dfi_1.Shrt_Desc.str.split(',')
for row in dfi_6.iteritems():
    for x in to_be_found:
        if x in row[1]:
            found.append(x)

print(found)
print(len(found))

c = Counter(found)
print(c)