Столбцы больше порога - PullRequest
0 голосов
/ 23 ноября 2018

Как получить столбцы, в которых хотя бы один раз отображается значение <порог? </p>

Например:

THRESHOLD = 0

print(df)

Col_1  Col_2  Col_3   Col_4
   1     3      5      -9
   1     3      5      -9
   1    -2      5      -9

print (final_df)

  Col_2    Col_4
     3      -9
     3      -9
    -2      -9

Я пытался с:

df[(df < 0).any(1)]  

Но он сообщает о строках, а не о столбцах, в которых появляется хотя бы один элемент <0. </p>

Ответы [ 2 ]

0 голосов
/ 23 ноября 2018

Вы можете выдать 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, путем логического индексирования.

0 голосов
/ 23 ноября 2018

Используя axis=0 с .loc

df.loc[:,(df < 0).any(0)]
Out[215]: 
   Col_2  Col_4
0      3     -9
1      3     -9
2     -2     -9

Или мы используем .iloc с nonzero

df.iloc[:,(df<0).any().nonzero()[0]]
Out[230]: 
   Col_2  Col_4
0      3     -9
1      3     -9
2     -2     -9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...