需要从具有以下值的Pandas列中提取以下内容
8-9 yrs
7-12 yrs
4-6 yrs需要在列中更新9,12,6。
发布于 2019-02-10 02:48:01
带有df的DataFrame,其中包含一个列a

使用带有findall函数的re库和正则表达式
import re
df.a.apply(lambda x : re.findall(r'-(\d+)', x))

发布于 2019-02-10 01:37:15
在-之后使用带有正则表达式的str.extract来获取数字,或者使用带有索引的split来获取数字,如果需要,最后转换为整数:
df['B1'] = df.A.str.extract('-(\d+)', expand=True)
df['B2'] = df.A.str.split(n=1).str[0].str.split('-').str[1].astype(int)
df['B3'] = df.A.str.split('-|\s+').str[1].astype(int)
print (df)
A B1 B2 B3
0 8-9 yrs 9 9 9
1 7-12 yrs 12 12 12
2 4-6 yrs 6 6 6https://stackoverflow.com/questions/54608780
复制相似问题