Извлечение отрицательных и положительных уникальных значений из фрейма данных? - PullRequest
0 голосов
/ 14 мая 2019

У меня большой фрейм данных с более чем 300 объектами (столбцами) и 200000 строками.В этом кадре данных некоторые столбцы содержат отрицательные значения, а некоторые нет.Ниже приведен пример моего фрейма данных:

    my_data:
         ID,  f1, f2, ...., f300
         x1,  34, 45, ....,  23
         x1,  5.4,56, ....,  32
         x2, -0.34,45,....,  12
         x2,   3,  56,....,  54
         x2,  56, 10, ....,  90
         x3,   5, -4, ....,  31
         x3,   30,6, ....,   4
         x4,  5.3,1.4,...,   0.4
         x4,  5.2,4.7,...,   3
         ...  ...   ...   ...
         Xn,  0.4,-5,...,    -3

Теперь я хочу извлечь уникальные идентификаторы, которые содержат только положительные значения, и поместить его в другой фрейм данных, а также извлечь уникальные идентификаторы, которые содержатхотя бы одно отрицательное значение и сохраните его в другом фрейме данных, что-то вроде этого:

     my_pos_data:
         ID, f1, f2, ....., f300
         x1, 34, 45,....,    23
         x1, 5.4,56,...,     32
         x4, 5.3,1.4,...,   0.4
         x4, 5.2,4.7,...,    3


      my_neg_data:
         ID,   f1,  f2, ....., f300
         x2,  -0.34, 45, ...,   12
         x2,    3,   56,....,   54
         x2,    56,  10,...,    90
         x3,    5,   -4,...,    31
         x3,    30,   6,....,   4
         Xn,    0.4,  -5,...,   -3

Я использовал приведенный ниже код, но я мог извлечь только те образцы, которые содержат отрицательные и все положительные значения, а не уникальные идентификаторы..

     my_pos_data=my_data[(my_data.iloc[:,1:300] >= 0).all(1)]
     my_neg_data=my_data[(my_data.iloc[:,1:300] < 0).any(1)]

Действительно, я хочу извлечь идентификаторы, которые содержали только положительные значения (для фрейма данных my_pos_data).Есть идеи сделать это эффективно?

...