首页 > 解决方案 > 如何在字符串中提取单词并放入数组 pandas

问题描述

我正在尝试使用正则表达式来提取字符串的字母部分,并将其放入数组中。例如,

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

获取所需列的正确正则表达式语法是什么?

标签: pythonarraysregexstringpandas

解决方案


您可以使用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]

推荐阅读