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

2024-04-26 18:21:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个大数据框架,有300多个特性(列)和200000行。在此数据框中,有些列包含负值,有些列包含no。下面是我的数据框示例:

    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

现在,我想提取只包含正值的uniques id并将其放到另一个数据帧中,同时提取至少包含一个负值的uniques 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(对于我的\u pos\u数据帧)。有没有办法用一种有效的方式做这件事


Tags: 数据posiddatamyf2f1x1