根据另一列中的字符串内容在熊猫中创建类别列

时间:2019-03-29 06:04:56

标签: python pandas

我想根据字符串列中的值标记熊猫行。 所需的输出是这样的:

enter image description here

我有此代码:

data = [{'age': 44, 'time': 150, 'name': "ape monkey"},
         {'age': 55,  'time': 200, 'name': "pig monkey"},
         {'age': 66,  'time': 50,  'name': "ape cow"}]
df = pd.DataFrame(data)

apes = df['name'].str.contains("ape")
monkeys = df['name'].str.contains("monkey")

像上面所需的输出那样,创建列type的好方法是什么?

1 个答案:

答案 0 :(得分:1)

这是使用map的非常规解决方案:

(2*apes + monkeys).map({0: 'neither', 1: 'monkey', 2: 'ape', 3: 'both'})

0      both
1    monkey
2       ape
Name: name, dtype: object

这个想法是为猿分配2的值,给猴子分配1的值,然后将两者相加并查看结果。