熊猫新手:我如何根据列的内容分配值?

时间:2015-06-03 20:46:16

标签: python pandas

我想根据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 

我该怎么做?

我是一个完整的编码新手,并一直在试验熊猫。我很抱歉这是一个完整的新手问题。

1 个答案:

答案 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