如果某个字符串是另一列的子字符串,我想创建一个新列。假设我有一个具有一列df['a']的数据帧:

         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同时包含AABB?在这种情况下,我的代码可能需要根据您希望如何定义输出行为进行一些修改。

关于python - Pandas :找到部分字符串并在新列中使用它,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37504564/

10-12 21:49
查看更多