我有一个数据框,如下所示。
它有一个多重索引,前三列是分开的。我想将 lambda 函数应用于“Class”列,并使用输出创建一个新的相邻列。
我已经尝试过了
df['newcol'] = df.apply(lambda x: newfunc(x) for x in df['Class'])
这似乎遇到了困难,我认为这与多级索引有关。我将如何去做这样一个过程?此外,如何在“类”列旁边插入新列?
Class 不是 DF 的列,它是多索引的级别 (2),因此必须使用以下方式访问:
df.index.get_level_values('Class')
可以根据需要使用它来形成新列 - 例如 df['new']
如果您希望这个新列成为您可能建议的多索引的附加级别,那么您可以使用:
df = df.set_index('new', append = True)
或者,您可以使用下面的行从多索引恢复为普通列,然后根据需要形成新列,然后根据需要从相关列重新创建多索引。
df= df.reset_index()