Python 如何按值删除列?

Python 如何按值删除列?,python,python-3.x,pandas,Python,Python 3.x,Pandas,我有一个df,它有两个列,名称相同 df: 如何删除value=default所在的整个列 新df如下所示: type 1 2 换一种方法怎么样,让我们改名列 df.columns = ['column_1', 'column_2'] 现在,如果我们想删除一列,我们可以选择特定的列 df.drop(columns='column_2', inplace=True) 如果您知道所需列的索引,那么只需调用df.iloc[:,index] 一些文档使用loc并选择它们: df = df.loc[

我有一个df,它有两个列,名称相同

df:

如何删除value=
default
所在的整个列

新df如下所示:

type
1
2

换一种方法怎么样,让我们改名列

df.columns = ['column_1', 'column_2']
现在,如果我们想删除一列,我们可以选择特定的列

df.drop(columns='column_2', inplace=True)

如果您知道所需列的
索引
,那么只需调用
df.iloc[:,index]

一些文档

使用
loc
并选择它们:

df = df.loc[:, ~df.eq('default').any(0)]  # ~df.eq('default').all(0)  # Stricter.
print (df)
   type
0     1
1     2

您不能使用
drop
filter
或任何其他惯用的列删除技术,因为列名相同。您唯一的选择是基于布尔选择器的方法。

我认为这并不能回答这个问题。这很公平,但有时可能不清楚列1或列2是否具有“默认”值。一般来说,你是如何处理这个案件的?好吧,鉴于@RustyShackleford问题中的有限信息,他似乎知道要删除哪一列,重复的列名是他的主要障碍。@RustyShackleford谢谢你,我现在10万只需要+56。
df = df.loc[:, ~df.eq('default').any(0)]  # ~df.eq('default').all(0)  # Stricter.
print (df)
   type
0     1
1     2