如果某个字符串是另一列的子字符串,我想创建一个新列。假设我有一个具有一列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同时包含
AA
和BB
?在这种情况下,我的代码可能需要根据您希望如何定义输出行为进行一些修改。关于python - Pandas :找到部分字符串并在新列中使用它,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37504564/