Python pandas分组依据并基于分组依据结果创建新列

Python pandas分组依据并基于分组依据结果创建新列,python,pandas,Python,Pandas,我有一个数据帧,我需要按它分组,并根据GROUPBY结果添加一列 我可以做groupby,但我需要一个名为“CLASS”的新列,如果groupby“FIRST”列的结果为“3”,则表示它应该有PASS-else-FAIL 为了更清晰,附上图片 df = pd.DataFrame({'Name': {0: 'Ram', 1: 'Ram', 2: 'Ram', 3: 'Vignesh', 4: 'Vignesh', 5: 'Vignesh', 6: 'Paul', 7:

我有一个数据帧,我需要按它分组,并根据GROUPBY结果添加一列

我可以做groupby,但我需要一个名为“CLASS”的新列,如果groupby“FIRST”列的结果为“3”,则表示它应该有PASS-else-FAIL

为了更清晰,附上图片

df = pd.DataFrame({'Name': {0: 'Ram',
  1: 'Ram',
  2: 'Ram',
  3: 'Vignesh',
  4: 'Vignesh',
  5: 'Vignesh',
  6: 'Paul',
  7: 'Paul',
  8: 'Paul',
  9: 'Stephen',
  10: 'Stephen',
  11: 'Stephen',
  12: 'Jones',
  13: 'Jones',
  14: 'Jones'},
 'Section': {0: 'A',
  1: 'A',
  2: 'A',
  3: 'B',
  4: 'B',
  5: 'B',
  6: 'C',
  7: 'C',
  8: 'C',
  9: 'D',
  10: 'D',
  11: 'D',
  12: 'E',
  13: 'E',
  14: 'E'},
 'School': {0: 'Don Bosco',
  1: 'Don Bosco',
  2: 'Don Bosco',
  3: 'Don Bosco',
  4: 'Don Bosco',
  5: 'Don Bosco',
  6: 'Don Bosco',
  7: 'Don Bosco',
  8: 'Don Bosco',
  9: 'Don Bosco',
  10: 'Don Bosco',
  11: 'Don Bosco',
  12: 'Don Bosco',
  13: 'Don Bosco',
  14: 'Don Bosco'},
 'Rank': {0: 'First',
  1: 'Second',
  2: 'First',
  3: 'Second',
  4: 'Second',
  5: 'First',
  6: 'First',
  7: 'First',
  8: 'First',
  9: 'Second',
  10: 'Second',
  11: 'Second',
  12: 'First',
  13: 'First',
  14: 'First'}})
实际数据帧

实际输出:我尝试的内容

基于上述条件的类列的预期输出


您可以使用
numpy。其中

import numpy as np

newdf['Class'] = np.where(newdf.First.eq(3), 'PASS', 'FAIL')

一个简单的选择是:

将numpy导入为np
newdf['Class']=np.where(newdf['First']>=3,‘通过’、‘失败’)

@SathishKumar请告诉我答案是否对您有效。
import numpy as np

newdf['Class'] = np.where(newdf.First.eq(3), 'PASS', 'FAIL')