选择 DataFrame.set_index 中除一列之外的所有列

glp*_*psx 3 python pandas

正如标题所示,我正在尝试选择除 中的一列之外的所有列DataFrame.set_index

我尝试了以下方法:

df = df.set_index(list(df.columns != 'cus_name'))
Run Code Online (Sandbox Code Playgroud)

cus_name系列是我想排除的系列。上面的代码引发了一个KeyError: True.

list(df.columns != 'cus_name')是一个布尔值列表[True, True, False, True, True, True, True, True, True, True, True, True],我需要的是一个列名称列表,除了cus_name.

我知道我可以在方法中显式输入我想要的列的完整列表set_index,但我在想是否有更有效的方法来做到这一点。

ank*_*_91 6

如果顺序很重要,您可以pd.Index.difference()在此处使用:sort=False

df=df.set_index(df.columns.difference(['cus_name'],sort=False).tolist())
Run Code Online (Sandbox Code Playgroud)