Вы можете выдать df.loc[:, (df < 0).any(0)]
.
>>> df
Col_1 Col_2 Col_3 Col_4
0 1 3 5 -9
1 1 3 5 -9
2 1 -2 5 -9
>>>
>>> df.loc[:, (df < 0).any(0)]
Col_2 Col_4
0 3 -9
1 3 -9
2 -2 -9
Подробности:
(df < 0).any(0)
даст вам столбцы, значение которых меньше нуля, потому что any(0)
работает вдоль строк.
>>> df < 0
Col_1 Col_2 Col_3 Col_4
0 False False False True
1 False False False True
2 False True False True
>>>
>>> (df < 0).any(0)
Col_1 False
Col_2 True
Col_3 False
Col_4 True
dtype: bool
Затем df.loc[:, (df < 0).any(0)]
выбирает все строки и столбцы, для которых df < 0).any(0)
равно True
, путем логического индексирования.