当特定单词是一列中的列表中的值时,如何将其添加到新列中

问题描述 投票:0回答:1

假设我的数据集

name what
A    apple[red]
B    cucumber[green]
C    dog
C    orange
D    banana
D    monkey
E    cat
F    carrot
.
.

我想创建并指定一个列表,并且如果该列包含该列表中包含的值,我想将指定的值设置为一个新列。

清单值

fruit = ['apple', 'banana', 'orange']
animal = ['dog', 'monkey', 'cat']
vegetable = ['cucumber', 'carrot']

得到我想要的结果

name what     class
A    apple    fruit
B    cucumber vegetable
C    dog      animal
C    orange   fruit
D    banana   fruit
D    monkey   animal
E    cat      animal
F    carrot   vegetable

列表值和列值不'匹配',必须包含。

感谢您阅读。

python pandas dataframe contains
1个回答
1
投票
fruit = ['apple', 'banana', 'orange'] animal = ['dog', 'monkey', 'cat'] vegetable = ['cucumber', 'carrot'] d = {'fruit':fruit, 'animal':animal,'vegetable':vegetable} d1 = {k: oldk for oldk, oldv in d.items() for k in oldv}

然后:

df['class'] = df['what'].map(d1)
© www.soinside.com 2019 - 2024. All rights reserved.