代码之家  ›  专栏  ›  技术社区  ›  Lumos

按条件删除多列上的行

  •  2
  • Lumos  · 技术社区  · 7 年前

    我想在多列上按条件计算行数,并按条件删除行。

    我想数一数行,如果 v1 v2 具有相同的值,这样我的df上有2行(v1=0,v2=30),1行(v1=0,v2=15;v1=0,v2=20),2行(v1=15,v2=10),3行(v1=10,v2=10)。然后,如果v1和v2没有2行,请删除这些行,在这种情况下,请删除(v1=0,v2=15;v1=0,v2=20)和(v1=10,v2=10)。

    df公司

     ID    v1    v2
      1    0     30
      1    15    10
      1    0     30
      1    0     15
      1    0     20
      1    15    10
      1    10    10
      1    10    10
      1    10    10
    

    预期产量

     ID    v1    v2
      1    0     30
      1    0     30
      1    15    10
      1    15    10
    

    groupby 首先是值,但不确定应该为删除写入什么条件。

    df[df.groupby(['ID', 'v_1', 'v_2'])]
    

    希望我解释清楚。

    谢谢

    1 回复  |  直到 7 年前
        1
  •  2
  •   BENY    7 年前

    IIUC公司

    df[df.duplicated(keep=False)]
    Out[29]: 
       ID  v1  v2
    0   1   0  30
    1   1  15  10
    2   1   0  30
    5   1  15  10