微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – pandas:找到部分字符串并在新列中使用它

我希望创建一个新列,以防某个字符串是另一列的子字符串.假设我有一个带有一列df [‘A’]的DataFrame:

         A           
0    bbh AA chd     
1    d10 DKL BB
2    kj AAdbl 5
3    kBB d7d dl

和一份清单:

check = ['AA', 'BB']

现在我想创建列df [‘B’],如果在df [‘A’]中找到它们,它将接管列表中的值:

      A             B
0    bbh AA chd     AA
1    d10 DKL BB     BB
2    kj AAdbl 5     AA
3    kBB d7d dl     BB

如何在循环列表(实际上变得比两个项目更大)或应用函数时完成此任务?

解决方法:

尝试使用iterrows遍历行并检查行是否包含检查列表中的任何元素,然后将其放入新列中.

for idx, row in df.iterrows():
    for c in check:
        if c in row['A']:
            df.ix[idx, 'B'] = c

输出

df
Out[16]: 
            A   B
0  bbh AA chd  AA
1  d10 DKL BB  BB
2  kj AAdbl 5  AA
3  kBB d7d dl  BB

只有一点点困惑:如果df包含AA和BB怎么办?在这种情况下,我可能需要根据您希望如何定义输出行为来修改我的代码.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐