【发布时间】:2021-06-01 21:52:22
【问题描述】:
我有一个如下图所示的数据框
import pandas as pd
import numpy as np
df=pd.DataFrame({'s_id':[1,2,3,4,5,6,7,8],
'test':['Metformin','Glipizide','Gliclazide','Glibenclamide','Repaglinide','nateglinide','sitagliptin','linagliptin']})
我想根据以下条件根据test 列中的值创建一个名为op 的新列
如果test 值包含*etformi* 模式,那么op 列应该有一个值C1。
如果test 值包含gli* 模式,那么op 列应该有一个值C2
如果test 值包含*nide 模式,那么op 列应该有一个值C3
如果test 值包含*gliptin 模式,那么op 列应该有一个值C4
我尝试了以下方法,但它没有按预期工作,并且不确定如何将它们合并在一起
df['test'].str.contains('metformi*', case=False, regex=True)
df['test'].str.contains(('gli*&&*ide'), case=False, regex=True)
df['test'].str.contains(('*nide'), case=False, regex=True)
df['test'].str.contains(('*gliptin'), case=False, regex=True)
我希望我的输出如下所示
【问题讨论】:
标签: python regex pandas string dataframe