我有一个数据框,想要检查一列中字符串的任何部分是否是给定字典中的键,如果是,则将此键的值分配给新列。
dict = {'Apple': 'Fruit', 'Chicken': 'Meat'}
expected df:
# String New Column
# 1 'Red apple' 'Fruit'
# 2 'Fried chicken' 'Meat'
我发现这篇文章与我需要做的非常接近,但我找不到使用字典的解决方案:python pandas if column string contains word flag
我希望这是有道理的,谢谢你的帮助!
答案 0 :(得分:1)
我们需要在您的dict
和您的df中将所有键的字符更改为大写字母,然后我们只需apply
并使用检查功能
d={x.upper(): y for x,y in d.items()}
df['New']=df.String.str.upper().apply(lambda x : ''.join([v if k in x else '' for k,v in d.items()]))
df
String New
0 Red apple Fruit
1 Fried chicken Meat