从数据框中提取负和正唯一值?

时间:2019-05-14 07:48:14

标签: python dataframe dictionary extraction

我有一个大数据框,其中包含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

现在,我要提取仅包含正值的唯一ID并将其放入另一个数据框,并提取至少包含一个负值的唯一ID并将其保存到另一个数据框,类似这样:

     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

我使用下面的代码,但是我只能提取包含负值和所有正值而不是唯一ID的样本。

     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)]

实际上,我想提取仅包含正值的ID(用于my_pos_data数据帧)。有什么想法可以有效地做到这一点吗?

0 个答案:

没有答案