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
如何获取所有列名称,但排除名称与 day
、purchase
和 cost
匹配的列?
【问题讨论】:
这能回答你的问题吗? 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 中的列并从列表值本身中获取列名?
如何将 Python 字典附加到 Pandas DataFrame,将键与列名匹配