簡體   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