Min-Max-Avg-As-New-Columns
Sat 17 May 2025
title: "Min Max Avg as new Columns" author: "Rj" date: 2019-04-22 description: "-" type: technical_note draft: false
import numpy as np
import pandas as pd
df = pd.read_csv('abc.csv')
df
| student | language | science | maths | history | |
|---|---|---|---|---|---|
| 0 | kumar | 90 | 56 | 34 | 34 |
| 1 | kevin | 10 | 34 | 32 | 67 |
| 2 | sammy | 90 | 23 | 12 | 32 |
| 3 | janice | 20 | 67 | 90 | 45 |
| 4 | peter | 30 | 56 | 45 | 65 |
| 5 | prem | 90 | 45 | 45 | 34 |
| 6 | carrol | 50 | 90 | 45 | 23 |
df['min'] = df.min(axis=1)
df['max'] = df.max(axis=1)
df['avg'] = df.mean(axis=1)
df
| student | language | science | maths | history | min | max | avg | |
|---|---|---|---|---|---|---|---|---|
| 0 | kumar | 90 | 56 | 34 | 34 | 34 | 90 | 56.333333 |
| 1 | kevin | 10 | 34 | 32 | 67 | 10 | 67 | 36.666667 |
| 2 | sammy | 90 | 23 | 12 | 32 | 12 | 90 | 43.166667 |
| 3 | janice | 20 | 67 | 90 | 45 | 20 | 90 | 55.333333 |
| 4 | peter | 30 | 56 | 45 | 65 | 30 | 65 | 48.500000 |
| 5 | prem | 90 | 45 | 45 | 34 | 34 | 90 | 56.333333 |
| 6 | carrol | 50 | 90 | 45 | 23 | 23 | 90 | 53.500000 |
df['avg_int'] = df.mean(axis=1).astype(int)
df
| student | language | science | maths | history | min | max | avg | avg_int | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | kumar | 90 | 56 | 34 | 34 | 34 | 90 | 56.333333 | 56 |
| 1 | kevin | 10 | 34 | 32 | 67 | 10 | 67 | 36.666667 | 36 |
| 2 | sammy | 90 | 23 | 12 | 32 | 12 | 90 | 43.166667 | 43 |
| 3 | janice | 20 | 67 | 90 | 45 | 20 | 90 | 55.333333 | 55 |
| 4 | peter | 30 | 56 | 45 | 65 | 30 | 65 | 48.500000 | 48 |
| 5 | prem | 90 | 45 | 45 | 34 | 34 | 90 | 56.333333 | 56 |
| 6 | carrol | 50 | 90 | 45 | 23 | 23 | 90 | 53.500000 | 53 |
Score: 10
Category: data-wrangling