Pandas:如何获取除与给定列表匹配的列名之外的列名[重复]

Posted

技术标签:

【中文标题】Pandas:如何获取除与给定列表匹配的列名之外的列名[重复]【英文标题】:Pandas: How to get column names except those that matches a given list [duplicate] 【发布时间】:2021-09-11 08:14:04 【问题描述】:

假设我有一个 df:

df = pd.DataFrame('day': range(1, 4),
                  'apple': range(5, 8),
                  'orange': range(7, 10),
                  'pear': range(9, 12),
                  'purchase': [1, 1, 1],
                  'cost': [50, 55, 60])

day   apple   orange   pear   purchase   cost
1     5       7        9      1          50
2     6       8        10     1          55
3     7       9        11     1          60

如何获取所有列名称,但排除名称与 daypurchasecost 匹配的列?

【问题讨论】:

这能回答你的问题吗? How to select all columns, except one column in pandas? 【参考方案1】:

用途:

cols = df.columns.difference(['day', 'purchase', 'cost'], sort=False)

或者:

cols = df.columns[~df.columns.isin(['day', 'purchase', 'cost'])]

df = df[cols]

【讨论】:

【参考方案2】:

通过列表理解

cols = [i for i in df.columns if i not in ["day", "purchase", "cost"]]

【讨论】:

以上是关于Pandas:如何获取除与给定列表匹配的列名之外的列名[重复]的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以扩展包含列表的 pandas Dataframe 中的列并从列表值本身中获取列名?

在 pandas 中查找与数组匹配的列名

如何将 Python 字典附加到 Pandas DataFrame,将键与列名匹配

使用 pyspark/pandas 使用列名的模式匹配对具有不同列名的多个列值求和

Pandas库read_excel()参数详解

如何从可能是与给定 id 匹配的父级或子级之一的列表中获取对象