访问多重索引中的列

问题描述 投票:0回答:1

我有一个数据框,如下所示。

它有一个多重索引,前三列是分开的。我想将 lambda 函数应用于“Class”列,并使用输出创建一个新的相邻列。

我已经尝试过了

df['newcol'] = df.apply(lambda x: newfunc(x) for x in df['Class'])

这似乎遇到了困难,我认为这与多级索引有关。我将如何去做这样一个过程?此外,如何在“类”列旁边插入新列?

python dataframe multi-index
1个回答
0
投票

Class 不是 DF 的列,它是多索引的级别 (2),因此必须使用以下方式访问:

df.index.get_level_values('Class')

可以根据需要使用它来形成新列 - 例如 df['new']

如果您希望这个新列成为您可能建议的多索引的附加级别,那么您可以使用:

df = df.set_index('new', append = True)

或者,您可以使用下面的行从多索引恢复为普通列,然后根据需要形成新列,然后根据需要从相关列重新创建多索引。

df= df.reset_index()
© www.soinside.com 2019 - 2024. All rights reserved.