[英]How to fill column values from dataframe column names based on condition?
我有一个包含这些列的数据maxlevel, level1id, level2id, level3id
。
我需要填充新列- newcol_value
基于从价值maxlevel
列。
如果maxlevel
= 1,填充newcol_value
与level1id
如果maxlevel
= 2,填充newcol_value
与level2id
如果maxlevel
= 3,填充newcol_value
与level3id
我试过了
id_dict = {1:'level1id', 2:'Level2ID', 3:'level3id', 4:'level4id', 5:'level5id'}
df['id'] = df[id_dict[df['maxlevel']]]
但是随着df['maxlevel]
给出系列,我得到了以下错误。
TypeError:“系列”对象是可变的,因此无法进行哈希处理
如何基于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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.