小编sne*_*e89的帖子

如何在循环中使用pandas string contains(str.contain)?

我有一个带有A列的pandas df,它是一串字符串.系列中的每个项目(即数据库中的每一行)只是一个长字符串,以逗号分隔.我想创建一个名为B的新列,每次从A列的每一行中出现一个单独列表中的对象时,该列会递增计数.例如:

我的列表看起来像这样:

list = ('dog', 'bird', 'cat')
Run Code Online (Sandbox Code Playgroud)

我的数据框看起来像这样:

A                           B
dog, bird                   2
cat, bird                   2
dog, snake                  1
cat, bird, snake            2
dog, bird, cat, snake       3
dog, bird cat               3
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个执行以下操作的嵌套循环:从df.a [0]开始(即df.A的第一个值),找出它是否包含列表的第一个值(即'dog') .如果df.A [0]包含,则将1添加到B.然后,保持在df.A的同一行中,继续到列表的第二个值(即'bird').如果df.A [0]也包含该值,则将另外1添加到B. etc等.

这是我正在尝试使用的代码.

for i in df['A']:
    for j in list:
        if i.str.contains(j):
            df['B'] += 1
Run Code Online (Sandbox Code Playgroud)

但是,我一直收到错误:

'str' object has no attribute 'str'
Run Code Online (Sandbox Code Playgroud)

我如何告诉熊猫看整个系列,同时还告诉它作为一个具有上述结构的循环?或者,解决这个问题的最佳方法是什么?

python string dataframe pandas

2
推荐指数
1
解决办法
1623
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1

string ×1