下面是一个数据框:
+---------+
| Value|
+---------+
|X1A14 |
|X20P79 |
|A50B7P60 |
|G24C5C6B8|
+---------+
value
列中的项目没有固定的长度。例如,X1A14
由两个字组成,分别为X1
和A14
。A50B7P60
分别为A50
、B7
和P60
。
我想拆分每个字符,但我需要保留字符,如下所示:
+---------+---+---+---+--+
| Value| A| B| C| D|
+---------+---+---+---+--+
|X1A14 |X1 |A14| | |
|X20P79 |X20|P79| | |
|A50B7P60 |A50|B7 |P60| |
|G24C5C6B8|G24|C5 |C6 |B8|
+---------+---+---+---+--+
最后,我想为每一栏做一个标记。我不能确定有多少栏,因为最后有四个词要合并成一个项目,所以在这种情况下我们有四栏要标记。
以下是最终输出:
+---------+---+-----+---+-----+---+-----+--+-----+
| Value| A|mark1| B|mark2| C|mark3| D|mark4|
+---------+---+-----+---+-----+---+-----+--+-----+
|X1A14 |X1 | A|A14| B| | C| | D|
|X20P79 |X20| A|P79| B| | C| | D|
|A50B7P60 |A50| A|B7 | B|P60| C| | D|
|G24C5C6B8|G24| A|C5 | B|C6 | C|B8| D|
+---------+---+-+---+---+-----+---+-----+--+-----+
我试过split
函数,但它不能保持单词delimeter离开。
1条答案
按热度按时间mklgxw1f1#
我假设您正在尝试匹配以大写字符开头并在下一个大写字符或字符串结尾之前结束的每个子字符串。
可以将
extractall
与正则表达式模式([A-Z][0-9]+)
一起使用,如下所示这导致了
这与您预期的结果略有不同,因为它使用数字标识符而不是字符来标识每个匹配项。您没有指定列
value
中是否有可变数量的子字符串(假定这只是您的数据的摘录),因此这可能更可靠。