我正在尝试使用正则表达式仅提取字符串的字母部分,并将其放入数组中。例如,
Target_column
ABC1234-332DER
1334-GGH-21WW
GG43--222EER
Desired_output
[ABC, DER]
[GGH,WW]
[GG,EER]
我有一个正则表达式代码,不会生成我想要的结果
df['target_column'] = df['desired_column'].str.extract('([a-zA-Z]+)', expand=True)
这将产生以下输出:
0 ABC1234-332DER ABC
1 1334-GGH-21WW GGH
2 GG43--222EER GG
获取所需列的正确正则表达式语法是什么?
答案 0 :(得分:2)
您可以使用extractall
,然后取消堆叠值并转换为列表:
df['desired_column'] = (df.Target_column.str.extractall('([a-zA-Z]+)')
.unstack()
.values.tolist())
>>> df
Target_column desired_column
0 ABC1234-332DER [ABC, DER]
1 1334-GGH-21WW [GGH, WW]
2 GG43--222EER [GG, EER]