如何根据条件从数据框列名中填充列值?
How to fill column values from dataframe column names based on condition?
我有一个包含这些列的数据框 - maxlevel, level1id, level2id, level3id
。
我需要根据 maxlevel
列中的值填充一个新列 - newcol_value
。
如果 maxlevel
= 1,用 level1id
填充 newcol_value
如果 maxlevel
= 2,用 level2id
填充 newcol_value
如果 maxlevel
= 3,用 level3id
填充 newcol_value
我试过了。
id_dict = {1:'level1id', 2:'Level2ID', 3:'level3id', 4:'level4id', 5:'level5id'}
df['id'] = df[id_dict[df['maxlevel']]]
但是由于 df['maxlevel]
给出系列,我收到以下错误。
TypeError: 'Series' objects are mutable, thus they cannot be hashed
如何根据 maxlevel
列中的值填充 newcol_value
值?
你应该使用 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)
我有一个包含这些列的数据框 - maxlevel, level1id, level2id, level3id
。
我需要根据 maxlevel
列中的值填充一个新列 - newcol_value
。
如果 maxlevel
= 1,用 level1id
newcol_value
如果 maxlevel
= 2,用 level2id
newcol_value
如果 maxlevel
= 3,用 level3id
newcol_value
我试过了。
id_dict = {1:'level1id', 2:'Level2ID', 3:'level3id', 4:'level4id', 5:'level5id'}
df['id'] = df[id_dict[df['maxlevel']]]
但是由于 df['maxlevel]
给出系列,我收到以下错误。
TypeError: 'Series' objects are mutable, thus they cannot be hashed
如何根据 maxlevel
列中的值填充 newcol_value
值?
你应该使用 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)