如何根据条件从dataframe列名填充列值?

2024-10-03 17:16:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含这些列的数据帧-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值?你知道吗


Tags: 数据iddfvalue错误序列dictnewcol
1条回答
网友
1楼 · 发布于 2024-10-03 17:16:30

你应该使用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)

相关问题 更多 >