pandas - 如何使用布尔Series删除DataFrame列?

7
我有一个程序可以做到这一点:
df1 = pd.DataFrame(np.random.randn(100,5),
                 columns=['a','b','c','d','e',])

我会尝试删除平均值大于0的列。

如果我执行以下操作:

s = df1.mean() > 0

在我的情况下,s是一个等于以下内容的pandas序列:

a    False
b    False
c     True
d     True
e    False
dtype: bool

但是我该如何将其应用于df1,以便删除c和d列?

我是否在错误地处理整个事情?

1个回答

7

试试这个:

df1[df1.columns[~s]]

这将消除所有s为True的列,即cd

另一种实现方法是:

df1.loc[:, ~s]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接