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

python - 根据另一列中的字符串内容在 Pandas 中创建类别列-LMLPHP

我有以下代码:

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的值,然后将两者相加并查看结果。

10-06 10:25