【问题标题】:Pandas newbie: How do I assign values based on content of columns?熊猫新手:如何根据列的内容分配值?
【发布时间】:2015-06-03 20:46:16
【问题描述】:

我想创建一个新列,并根据 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 

我该怎么做?

我是一个完整的编码新手,并且一直在尝试使用 Pandas。我很抱歉,这是一个完整的新手问题。

【问题讨论】:

  • 欢迎来到 StackOverflow。我认为您将不得不向我们展示一些代码,以便我们为您提供帮助。
  • 请将您的第二个问题拆分为一个单独的问题。

标签: python pandas


【解决方案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

【讨论】:

    猜你喜欢
    • 2020-12-11
    • 2022-09-23
    • 1970-01-01
    • 2017-12-18
    • 2018-04-06
    • 1970-01-01
    • 2021-06-05
    • 2019-03-14
    • 2022-11-16
    相关资源
    最近更新 更多