我有一个数据帧,看起来像下面的
df
A B C D E
0 -1 -3 0 5 -2
1 3 -2 -1 -4 -5
2 0 -4 -3 -2 -1
我想删除包含所有负值的列,并将它们保存在第二个数据帧中。这样的话,我想要
df
A C D
0 -1 0 5
1 3 -1 -4
2 0 -3 -2
df2
B E
0 -3 -2
1 -2 -5
2 -4 -1
对0
和DataFrame.all
这样的较小值使用DataFrame.lt
来测试所有True
,然后在DataFrame.loc
中进行筛选,这里:
表示通过掩码获取所有行和列:
m = df.lt(0).all()
df1 = df.loc[:, ~m]
df2 = df.loc[:, m]
或者用大于或等于的值测试至少一个True
的反转逻辑:
m = df.ge(0).any()
df1 = df.loc[:, m]
df2 = df.loc[:, ~m]