我有一个大数据框,其中包含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数据帧)。有什么想法可以有效地做到这一点吗?