首页 > 解决方案 > 从数据框中提取负值和正值唯一值?

问题描述

我有一个包含 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 数据框)。任何想法以有效的方式做到这一点?

标签: pythondataframedictionaryextraction

解决方案


推荐阅读