我想根据字符串列中的值标记熊猫行。
所需的输出是这样的:
我有以下代码:
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
的好方法是什么? 最佳答案
这是使用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的值,然后将两者相加并查看结果。