从dataframe中选择除列列表以外的所有内容

是否可以从数据帧中选择给定列表的否定?。例如,假设我有以下数据帧

T1_V2 T1_V3 T1_V4 T1_V5 T1_V6 T1_V7 T1_V8
11532NBN
41614145HBN
10105KN

我想去掉所有的列,除了T1列。我通常会这样做:

df=df[[“T1_V2”、“T1_V3”、“T1_V4”、“T1_V5”、“T1_V7”、“T1_V8”]]

我的问题是,是否有另一种方法,像这样

df=df[![“T1_V6”]]

做:

df[df.columns.difference([“T1_V6”])]

评论中的注释:

  • 这将对列进行排序。如果您不想排序,请使用sort=False调用difference

  • 如果删除的列名不存在,差异不会引发错误。如果您想在列不存在的情况下引发错误,请按照其他答案中的建议使用drop:df.drop([“T1_V6”])
    `

发表评论