我有一个类似于以下结构的数据框:
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
。
我该如何处理?
谢谢!
答案 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)