我有一个包含多个列的数据框架。其中之一是df['col1']
,字符串值由字母、特殊字符(.or_)和数字组成。我想创建一个新列,返回索引+1或第一个数字或字母的位置
我知道这不起作用,但类似于:
df['new_col'] = df['col1'].apply(lambda x: re.search(r'\d', str(x))).str.startswith()
所以
col1 = abc12 returns 4,
33zxy returns 1,
hi_world2 returns 9
依此类推(如果是第一个数字的位置)
我还尝试了find、next和filter,但都不起作用
df['new_col'] = df['col1'].str.find(next(filter(str.isalpha, df['col1']))) + 1
任何帮助都将不胜感激
您可以使用搜索
你得到
编辑:如果没有匹配项,re.search().start()将抛出属性错误。这需要妥善处理。由于Pandas将NaN解释为浮动,因此产生的位置将为浮动类型
相关问题 更多 >
编程相关推荐