Python pandas分组依据并基于分组依据结果创建新列
我有一个数据帧,我需要按它分组,并根据GROUPBY结果添加一列 我可以做groupby,但我需要一个名为“CLASS”的新列,如果groupby“FIRST”列的结果为“3”,则表示它应该有PASS-else-FAIL 为了更清晰,附上图片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:
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')