【发布时间】:2016-09-27 00:54:44
【问题描述】:
如果某个字符串是另一个列的子字符串,我想创建一个新列。假设我有一个包含一列 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
如何在循环遍历列表(实际上它不仅仅是两个项目)或应用函数时完成此任务?
【问题讨论】:
-
在 pandas 中执行此操作的首选方法是
df['A'].str.extract('(%s)' % '|'.join(check), expand=False)。正则表达式捕获组(AA|BB)用于在此处提取值。如果您想在同一个单元格中查找多个字符串,还可以查看extractall和findall。
标签: python loops pandas vectorization