我正在处理一个包含字母、特殊字符和数字的数据框。我的目标是提取所有字母和第一个数字。所有数字总是出现在字母和特殊字符之后;但是,某些字母可能会出现在特殊字符之后。请参阅下面的示例:
d = {'col1': ['A./B. 1234', 'CDEF/G5.','AB./C23']}
df = pd.DataFrame(data=d)
print(df)
# col1
# 0 A./B. 1234
# 1 CDEF/G5.
# 2 AB./C23
我查找了许多变体,但我不知道如何处理特殊字符./
等。
df.col1.str.extract('([A-Za-z\d]+)')
# 0
# 0 A
# 1 CDEF
# 2 AB
这给了我所有的字母和数字,直到它到达一个特殊字符。最终我想得到以下输出:
AB1
CDEFG5
ABC2
我是正则表达式的新手。
您需要提取包括第一个数字在内的所有字符,然后用空字符串替换任何非字母/数字字符:
d = {'col1': ['A./B. 1234', 'CDEF/G5.','AB./C23']}
df = pd.DataFrame(data=d)
df.col1.str.extract(r'^([^\d]+\d)').replace('[^A-Za-z0-9]', '', regex=True)
输出:
0
0 AB1
1 CDEFG5
2 ABC2
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句