【发布时间】:2019-03-17 07:53:37
【问题描述】:
我有以下数据集:
column1
HL111
PG3939HL11
HL339PG
RC--HL--PG
我正在尝试编写一个执行以下操作的函数:
- 循环遍历 column1 的每一行
- 只提取字母并放入数组中
- 如果数组中包含“HL”,请将其从数组中删除,除非 HL 是数组中唯一的单词。
- 取数组中的第一个单词并输出结果。
所以对于上面的例子,我的数组(step2)看起来像这样:
[HL]
[PG,HL]
[HL,PG]
[RC,HL,PG]
我想要的最终输出(第 4 步)如下所示:
desired_column
HL
PG
PG
RC
我有第 2 步的代码,它似乎工作正常
df['array_column'] = (df.column1.str.extractall('([A-Z]+)')
.unstack()
.values.tolist())
但我不知道如何从这里到达我的最终输出(步骤 4)。
【问题讨论】:
-
如果单元格没有字母,你会期待什么?
!!!!!或11111? -
如果单元格没有字母,则结果可以为空或为空
-
我添加了an answer,它处理没有字母的单元格并遵循您的初始逻辑。
标签: python arrays regex pandas loops