Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何根据条件从dataframe列名中填充列值?_Python_Pandas_Dataframe_Series_Pandasql - Fatal编程技术网

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使用查找,很抱歉忽略了这个问题