我想根据pet1是否包含单词'cat'或单词'dog'来创建一个新的列,其数值已分配
pet1
0 dog
1 dog;cat;rabbit
2 cat;dog
3 manbearpig
4 hippo
我希望最终结果如下:
pet1 points
0 dog 5
1 dog;cat;rabbit 5
2 cat;dog 5
3 manbearpig 0
4 hippo 0
我该怎么做?
我是一个完整的编码新手,并一直在试验熊猫。我很抱歉这是一个完整的新手问题。
答案 0 :(得分:1)
您可以使用字符串方法contains
。
从这个数据框开始:
In [96]: df
Out[96]:
pet1
0 dog
1 dog;cat;rabbit
2 cat;dog
3 manbearpig
4 hippo
您可以检查每个元素是否包含子字符串' dog':
In [97]: df['pet1'].str.contains('dog')
Out[97]:
0 True
1 True
2 True
3 False
4 False
Name: pet1, dtype: bool
然后乘以5以得到您想要的结果:
In [98]: df['pet1'].str.contains('dog') * 5
Out[98]:
0 5
1 5
2 5
3 0
4 0
Name: pet1, dtype: int32