[英]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.