Reputation: 109
Following are the standard values for score and grades. Score column contains numbers within specified range.
Score | Grade1 | Grade2 | Grade3 | Grade4 |
---|---|---|---|---|
<260 | A1 | IA1 | D1 | ID1 |
260-275 | A2 | IA2 | D2 | ID2 |
275-280 | A3 | IA3 | D3 | ID3 |
280-285 | A4 | IA4 | D4 | ID4 |
>=285 | A5 | IA5 | D5 | ID5 |
Input :-
Score | Grade1 | Grade2 | Grade3 | Grade4 |
---|---|---|---|---|
290 | A1 | IA4 | D3 | ID2 |
Output:-
Tiers | Grade | Grade1 | Grade2 | Grade3 | Grade4 |
---|---|---|---|---|---|
1 | A1 | ||||
2 | ID2 | ||||
3 | D3 | ||||
4 | IA4 | ||||
5 | 290 |
Upvotes: 1
Views: 86
Reputation: 13212
Example
data1 = {'Grade': {0: 'B1', 1: 'B2', 2: 'B3', 3: 'B4', 4: 'B5'},
'Grade1': {0: 'A1', 1: 'A2', 2: 'A3', 3: 'A4', 4: 'A5'},
'Grade2': {0: 'IA1', 1: 'IA2', 2: 'IA3', 3: 'IA4', 4: 'IA5'},
'Grade3': {0: 'D1', 1: 'D2', 2: 'D3', 3: 'D4', 4: 'D5'},
'Grade4': {0: 'ID1', 1: 'ID2', 2: 'ID3', 3: 'ID4', 4: 'ID5'}}
data2 = {'Grade': {0: 'B5'}, 'Grade1': {0: 'A1'}, 'Grade2': {0: 'IA4'},
'Grade3': {0: 'D3'}, 'Grade4': {0: 'ID2'}}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)
Code
make condition by using broadcasting
df1[df1.eq(df2.iloc[0])]
result:
Grade Grade1 Grade2 Grade3 Grade4
0 NaN A1 NaN NaN NaN
1 NaN NaN NaN NaN ID2
2 NaN NaN NaN D3 NaN
3 NaN NaN IA4 NaN NaN
4 B5 NaN NaN NaN NaN
Upvotes: 3