繁体   English   中英

如何根据条件从数据框列名称填充列值?

[英]How to fill column values from dataframe column names based on condition?

我有一个包含这些列的数据maxlevel, level1id, level2id, level3id

我需要填充新列- newcol_value基于从价值maxlevel列。

如果maxlevel = 1,填充newcol_valuelevel1id

如果maxlevel = 2,填充newcol_valuelevel2id

如果maxlevel = 3,填充newcol_valuelevel3id

我试过了

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM