我的DF如下所示
col1
GRE MET HOCK 38
ASS COM CORD EMERG INIT
我想用col1中每个单词的第一个字符串创建一个列,但保留整数,如下所示
col1 col2
GRE MET HOCK 38 GMH38
ASS COM CORD EMERG INIT ACCEI
我找到了一些可能有效的方法,但没有达到预期的效果
import re
input = "GRE MET HOCK 38"
output = "".join(item[0].upper() for item in re.findall("\w+", input))
split
将空格上的字符串堆叠成一个长序列。然后,您可以获取第一个字母,除了字符串isnumeric
的拆分部分之外,最后加入结果并赋值,这与原始数据帧索引对齐您可以使用
Series.str.replace
:见regex demo。根据支持正则表达式所需的数字类型和单词边界类型,可以对正则表达式进行调整
当前模式匹配
\b(?!\d+\b)(\w)\w*
-一个单词边界,然后是一个单词字符(捕获到组1中,然后是零个或多个单词字符,但这些单词字符不应构成一个完整的数字序列)|
-或\s+
-一个或多个空白如果组1匹配,则此大写值为替换值,否则,将删除匹配值(替换值为空字符串)
您可以迭代列项并提取按空格拆分的项的单词,然后使用单词的首字母创建新词并将新词保存到列表中,然后将此列表添加到DataFrame的新列中
相关问题 更多 >
编程相关推荐