这是数据帧的子集:
Index duration
1 4 months20mg 1X D
2 1 years10 1X D
3 2 weeks10 mg
4 8 years300 MG 1X D
5 20 days
6 10 months
输出应如下所示:
Index duration
1 4 month
2 1 year
3 2 week
4 8 year
5 20 day
6 10 month
这是我的密码:
df.dosage_duration.replace(r'year[0-9a-zA-z]*' , 'year', regex=True)
df.dosage_duration.replace(r'day[0-9a-zA-z]*' , 'day', regex=True)
df.dosage_duration.replace(r'month[0-9a-zA-z]*' , 'month', regex=True)
df.dosage_duration.replace(r'week[0-9a-zA-z]*' , 'week', regex=True)
但它不起作用。有什么建议吗?你知道吗
有两个问题。你知道吗
第一个问题是正则表达式没有匹配所有需要匹配的部分。请看
months20mg 1X D
-您要替换的零件中有一个空格。我想你可以用'year.*'
作为你的对手。你知道吗第二个是调用
replace
,而不存储结果。如果希望按现有方式进行调用,则应指定inplace=True
。你知道吗如果使用稍微扩展的正则表达式,也可以使用单个调用。我们可以使用
\1
来引用正则表达式的第一个匹配组。分组用括号表示:相关问题 更多 >
编程相关推荐