如何基于条件python从dataframe中提取特定内容

2024-07-04 16:06:57 发布

您现在位置:Python中文网/ 问答频道 /正文

考虑下面的熊猫数据文件: enter image description here

这是文本的一个示例:

farine de blé 34% (france), pépites de chocolat 20g (ue) (sucre, pâte de cacao, beurre de cacao, émulsifiant lécithines (tournesol), arôme) (cacao : 44% minimum), matière grasse végétale (palme), sucre, 8,5% chocolat(sucre, pâte de cacao, cacao et cacao maigre en poudre) (cacao: 38% minimum), 5,5% éclats de noix de pécan (non ue), poudres à lever : diphosphates carbonates de sodium, blancs d’œufs, fibres d'acacia, lactose et protéines de lait, sel. dont lait.

oignon 18g oil hell: kartoffelstirke, milchzucker, maltodextrin, reismehl. 100g produkt enthalten: 1559KJ ,energie 369 kcal lt;0.5g lt;0.1g 909 fett davon gesättigte fettsāuren kohlenhydrate davon ,zucker 26g

我用下面的代码将每行的成分分成几个单词:

for i in df['ingredients_text'][:].index:
        words = df["ingredients_text"][i].split(',')
        df["ingredients_text"][i]=words

你知道如何从另一列名为“配料”的文本中提取含有%和g的配料吗? 例如,所需的输出应为:

['farine de blé 34%', 'pépites de chocolat 20g','cacao : 44%' ,'8,5% chocolat' ,'cacao: 38%', '5,5% éclats de noix de pécan']
['oignon 18g oil hell', '100g produkt enthalten', 'lt;0.5g', 'lt;0.1g' , '26g zucker']

Tags: text文本ltdfdeteminimumbl
1条回答
网友
1楼 · 发布于 2024-07-04 16:06:57
df = pd.DataFrame({'ingredient_text': ['a%bgC, abc, a%, cg', 'xyx']})

      ingredient_text
0  a%bgC, abc, a%, cg
1                 xyx

把配料分成一张单子

df['ingredient_text'] = df['ingredient_text'].str.split(',')
           ingredient_text
0  [a%bgC,  abc,  a%,  cg]
1                    [xyx]

在列表中搜索您的字符串

df['ingredient'] = df['ingredient_text'].apply(lambda x: [s for s in x if ('%' in s) or ('g' in s)])

           ingredient_text         ingredient
0  [a%bgC,  abc,  a%,  cg]  [a%bgC,  a%,  cg]
1                    [xyx]                 []

相关问题 更多 >

    热门问题