Python 从aKorean文本字符串中提取一个整数,以其内容为条件,并将其转换为浮点形式

Python 从aKorean文本字符串中提取一个整数,以其内容为条件,并将其转换为浮点形式,python,regex,pandas,format-conversion,Python,Regex,Pandas,Format Conversion,我有点陷入了以下问题:我有一个熊猫数据框,其中一列是韩语文本字符串,如下所示: data = {'id': [1,2,3,4,5], 'age': ['3.5년령(추정)','3개월령','5일령(추정)','3일령','1.5개월령(추정)']} df = pd.DataFrame(data) result = {'id': [1,2,3,4,5],'age': [1278, 90, 5, 3, 45]} df1 = pd.DataFrame(result) 有条件地根据字符串包含的内容,

我有点陷入了以下问题:我有一个熊猫数据框,其中一列是韩语文本字符串,如下所示:

data = {'id': [1,2,3,4,5], 'age': ['3.5년령(추정)','3개월령','5일령(추정)','3일령','1.5개월령(추정)']}
df = pd.DataFrame(data)
result = {'id': [1,2,3,4,5],'age': [1278, 90, 5, 3, 45]}
df1 = pd.DataFrame(result)
有条件地根据字符串包含的内容,我需要以天为单位计算年龄。parenteses中的文本(추정), 可能出现在字符串中,也可能不出现在字符串中,表示“估计”。括号前的文本可以是년령 (年),개월령 (月)或일령 (天)。最后,文本前的数字可以是整数,也可以是带一个或两个小数的浮点。我需要提取数字并将其转换为以天为单位的年龄(四舍五入到小数点后0位),如下所示:

data = {'id': [1,2,3,4,5], 'age': ['3.5년령(추정)','3개월령','5일령(추정)','3일령','1.5개월령(추정)']}
df = pd.DataFrame(data)
result = {'id': [1,2,3,4,5],'age': [1278, 90, 5, 3, 45]}
df1 = pd.DataFrame(result)
我曾尝试使用如下所示的正则表达式提取字符串的数字部分,但它并没有涵盖所有情况,而且似乎也不能很好地工作

df['age'].str.replace(r'\([추정]\)$', '')
如有任何建议,我将不胜感激。谢谢。

使用:

d = {'년령': 365, '개월령' : 30, '일령' : 1}
pat = r'(\d*\.\d+|\d+)'
#replace by dictionary
b = df['age'].replace(d, regex=True)
#https://stackoverflow.com/a/4703409/2901002
a = df['age'].str.extract(pat, expand=False).astype(float)
#multiple together
df['age'] = b * a
print (df)
   id     age
0   1  1277.5
1   2    90.0
2   3     5.0
3   4     3.0
4   5    45.0