pandas根据另一列

时间:2017-11-10 13:14:24

标签: python python-3.x pandas dataframe

我有以下dataframe有4列,

cluster_a  cluster_b  cluster_c  cluster_d
-1         1           10        -1
-1         3           9         -1
 1         1           3          4
 1         1           3          4
 2         2           9          9
 2         2           9          9

表示值为>的行-1的{​​{1}},我想将cluster_a-1cluster_b的列值设置为cluster_c,如果这些行没有来自cluster_d == cluster_a的行中任何这些列的相同值。但是,如果这些行可以在-1 == cluster_a的行中找到相应的值,则保持列值不变。

具有相同-1值的行,其余列的值也相同。

所以结果cluster_a看起来像,

df

这里的行

cluster_a  cluster_b  cluster_c  cluster_d
-1         1           10        -1
-1         3           9         -1
 1         1          -1         -1
 1         1          -1         -1
 2        -1           9         -1
 2        -1           9         -1

具有相同的cluster_a值,此值为> -1,我们将它们视为同一组(代码中为 1 1 3 4 1 1 3 4 ),因为它们的id_rows值与cluster_b中的第1行相同,

df

他们的 -1 1 10 -1 不会设为cluster_b

但是,-1cluster_c不是这样,因为cluster_dcluster_ccluster_d ==的行中找不到相同的值cluster_a

-1

以上两行 -1 1 10 -1 -1 3 9 -1 == cluster_a因此

的结果
1

这是我的代码,

  1         1          -1         -1
  1         1          -1         -1

我想知道是否有更简洁/有效的方法来做到这一点。

0 个答案:

没有答案