熊猫-如何使用布尔系列删除DataFrame列?

时间:2018-07-17 03:26:53

标签: python pandas

我有一个执行此操作的程序:

df1 = pd.DataFrame(np.random.randn(100,5),
                 columns=['a','b','c','d','e',])

从那里,我试图删除均值> 0的列

如果我做

s = df1.mean() > 0

在我的情况下,s是一个等于的熊猫系列:

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

但是如何将其应用于df1,以便删除cols和d?

我把整个事情都弄错了吗?

2 个答案:

答案 0 :(得分:1)

尝试一下:

df1[df1.columns[~s]]

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

另一种实现此目的的方法是:

df1.loc[:, ~s]

答案 1 :(得分:0)

IIUC,只需在您的 mask

中使用loc
s = df1.mean() > 0
df.loc[:, ~s]