使用嵌套字典中列出的条件创建并填充新列

2024-09-28 01:24:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手。我有数据帧

df = pd.DataFrame(
{
'ID': ['AB01', 'AB02', 'AB03', 'AB04', 'AB05','AB06'],
'drugNo': ["Osel","Placebo","Not Osel",np.nan,"UKN","Osel"],
'drugName': ['Placebo', 'Vitamin C', np.nan, 'Placebo', '', 'Type X']
})

和字典(如果需要可以重新构造)

cond_dict = {'Anti': {('Osel', 'Not Osel'):'drugNo' }, 
         'Placebo Effect': {'Placebo': 'drugNo', 'Vitamin C': 'drugName'},
         'UNKNOWN': {'drugNo':'UKN'}}

我希望最终结果包括以下数据到数据帧

'effect': ['Anti','Placebo Effect','Anti',np.nan,'UNKNOWN','Anti']

如果是字典中的简单映射,我可以这样做,但是检查的条件涉及OR(对于任何给定的值)和and(检查多列),因此我无法找到一种方法。 字典可以重新构造,但我希望它包括的是,如果drugNo是“Osel”或“notosel”,那么新列是Anti。如果drugNo为安慰剂且drugName为维生素C,则新列为安慰剂效应。如果drugNo为UKN,则新列未知。这些信息应该放在字典里,不能硬编码。怎样才能达到最终的结果呢


Tags: 数据字典npnotnanunknowneffect新手

热门问题