Python 如何根据条件从dataframe列名中填充列值?
我有一个包含以下列的数据框-Python 如何根据条件从dataframe列名中填充列值?,python,pandas,dataframe,series,pandasql,Python,Pandas,Dataframe,Series,Pandasql,我有一个包含以下列的数据框-maxlevel、level1id、level2id、level3id 我需要根据maxlevel列中的值填充一个新列-newcol\u value 如果maxlevel=1,则使用level1id 如果maxlevel=2,则使用level2id 如果maxlevel=3,则使用level3id 我试过这个 id_dict = {1:'level1id', 2:'Level2ID', 3:'level3id', 4:'level4id', 5:'level5id'}
maxlevel、level1id、level2id、level3id
我需要根据maxlevel
列中的值填充一个新列-newcol\u value
如果maxlevel
=1,则使用level1id
如果maxlevel
=2,则使用level2id
如果maxlevel
=3,则使用level3id
我试过这个
id_dict = {1:'level1id', 2:'Level2ID', 3:'level3id', 4:'level4id', 5:'level5id'}
df['id'] = df[id_dict[df['maxlevel']]]
但是由于df['maxlevel]
给出了系列,我得到了以下错误
TypeError:“Series”对象是可变的,因此无法对其进行散列
如何根据
maxlevel
列中的值填充newcolu值
值?您应该使用lookup
d={'level1id':1, 'Level2ID':2, 'level3id':3, 'level4id':4, 'level5id':5}
df=df.rename(columns=d)
df['New']=df.lookup(df.index,df.maxlevel)
编号可能重复。它所做的只是更新为
列\u name
。不使用列值。预期值:该行的level1id
中的值。实际值:level1id
@SukumarRdjf尝试替换否。它仍然给出相同的输出。@SukumarRdjf-ah使用查找,很抱歉忽略了这个问题