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

pandas从其他2列中删除列值

  •  0
  • muazfaiz  · 技术社区  · 6 年前

    我有以下数据框

    team          team2     condition   Required_Col
    Australia   Sri Lanka   Sri Lanka   Australia
    Australia   Sri Lanka   Sri Lanka   Australia
    Australia   Sri Lanka   Sri Lanka   Australia
    Australia   Sri Lanka   Australia   Sri Lanka
    Australia   Sri Lanka   Australia   Sri Lanka
    

    我想创建 Required_Col 如果值在 condition 列,然后是除 条件 在里面 team team2 应选择列。在熊猫身上最好的方法是什么?

    2 回复  |  直到 6 年前
        1
  •  4
  •   user3483203    6 年前

    使用 np.where

    df['required'] = np.where(df.condition == df.team, df.team2, df.team)
    
            team     team2  condition   required
    0  Australia  SriLanka   SriLanka  Australia
    1  Australia  SriLanka   SriLanka  Australia
    2  Australia  SriLanka   SriLanka  Australia
    3  Australia  SriLanka  Australia   SriLanka
    4  Australia  SriLanka  Australia   SriLanka
    
        2
  •  1
  •   harvpan    6 年前

    你可以用 .apply() :

    df['Required_Col'] = df.apply(lambda x: x['team2'] if (x['condition']==x['team']) else x['team'], axis=1)
    

    输出:

            team    team2       condition   Required_Col
    0   Australia   SriLanka    SriLanka    Australia
    1   Australia   SriLanka    SriLanka    Australia
    2   Australia   SriLanka    SriLanka    Australia
    3   Australia   SriLanka    Australia   SriLanka
    4   Australia   SriLanka    Australia   SriLanka