basketball_test(): Read basketball data from csv file. Read the data from "basketball_data.csv" Print a small part of the data: print ( data.head() ) ID Position Height ... ShoeSponsor CareerStage Age Name ... Adam 1 forward 192 ... yes veteran 29 Bill 2 center 218 ... no mid-career 35 Clay 3 forward 197 ... no rookie 22 Dale 4 forward 192 ... no rookie 22 Evan 5 forward 198 ... yes veteran 29 [5 rows x 8 columns] Try to print the whole DataFrame: print ( data ) ID Position Height ... ShoeSponsor CareerStage Age Name ... Adam 1 forward 192 ... yes veteran 29 Bill 2 center 218 ... no mid-career 35 Clay 3 forward 197 ... no rookie 22 Dale 4 forward 192 ... no rookie 22 Evan 5 forward 198 ... yes veteran 29 Fred 6 guard 166 ... yes rookie 21 Gale 7 forward 195 ... no veteran 25 Hank 8 guard 182 ... yes rookie 21 Iain 9 guard 189 ... yes mid-career 27 Jake 10 forward 205 ... no rookie 24 Kyle 11 center 206 ... no mid-career 29 Lyle 12 guard 185 ... yes rookie 23 Mike 13 guard 172 ... yes rookie 24 Nate 14 guard 169 ... yes rookie 24 Odad 15 guard 185 ... yes mid-career 29 Pete 16 forward 215 ... no mid-career 30 Quin 17 guard 158 ... yes veteran 29 Rafe 18 guard 190 ... yes mid-career 27 Stan 19 center 195 ... no mid-career 28 Trig 20 guard 192 ... yes mid-career 32 Unit 21 forward 202 ... no mid-career 31 Vole 22 forward 184 ... no mid-career 32 Wade 23 forward 190 ... no rookie 22 Xand 24 guard 178 ... no rookie 21 Yang 25 guard 185 ... yes mid-career 31 Zeke 26 forward 191 ... no rookie 19 [26 rows x 8 columns] Try again to print the whole DataFrame: print ( data.to_string() ) ID Position Height Weight SponsorshipEarnings ShoeSponsor CareerStage Age Name Adam 1 forward 192 218 561000 yes veteran 29 Bill 2 center 218 251 60000 no mid-career 35 Clay 3 forward 197 221 1312000 no rookie 22 Dale 4 forward 192 219 1359000 no rookie 22 Evan 5 forward 198 223 362000 yes veteran 29 Fred 6 guard 166 188 1536000 yes rookie 21 Gale 7 forward 195 221 694000 no veteran 25 Hank 8 guard 182 199 1678000 yes rookie 21 Iain 9 guard 189 199 385000 yes mid-career 27 Jake 10 forward 205 232 1416000 no rookie 24 Kyle 11 center 206 246 314000 no mid-career 29 Lyle 12 guard 185 207 1497000 yes rookie 23 Mike 13 guard 172 183 1383000 yes rookie 24 Nate 14 guard 169 183 1034000 yes rookie 24 Odad 15 guard 185 197 178000 yes mid-career 29 Pete 16 forward 215 232 434000 no mid-career 30 Quin 17 guard 158 184 162000 yes veteran 29 Rafe 18 guard 190 207 648000 yes mid-career 27 Stan 19 center 195 235 481000 no mid-career 28 Trig 20 guard 192 200 427000 yes mid-career 32 Unit 21 forward 202 220 542000 no mid-career 31 Vole 22 forward 184 213 12000 no mid-career 32 Wade 23 forward 190 215 1179000 no rookie 22 Xand 24 guard 178 193 1078000 no rookie 21 Yang 25 guard 185 200 213000 yes mid-career 31 Zeke 26 forward 191 218 1855000 no rookie 19 print data.columns Index(['ID', 'Position', 'Height', 'Weight', 'SponsorshipEarnings', 'ShoeSponsor', 'CareerStage', 'Age'], dtype='object') print data.index Index(['Adam', 'Bill', 'Clay', 'Dale', 'Evan', 'Fred', 'Gale', 'Hank', 'Iain', 'Jake', 'Kyle', 'Lyle', 'Mike', 'Nate', 'Odad', 'Pete', 'Quin', 'Rafe', 'Stan', 'Trig', 'Unit', 'Vole', 'Wade', 'Xand', 'Yang', 'Zeke'], dtype='object', name='Name') List player Wade ID 23 Position forward Height 190 Weight 215 SponsorshipEarnings 1179000 ShoeSponsor no CareerStage rookie Age 22 Name: Wade, dtype: object List heights Name Adam 192 Bill 218 Clay 197 Dale 192 Evan 198 Fred 166 Gale 195 Hank 182 Iain 189 Jake 205 Kyle 206 Lyle 185 Mike 172 Nate 169 Odad 185 Pete 215 Quin 158 Rafe 190 Stan 195 Trig 192 Unit 202 Vole 184 Wade 190 Xand 178 Yang 185 Zeke 191 Name: Height, dtype: int64 List weight of player Pete 232 List players who are tall: ID Position Height ... ShoeSponsor CareerStage Age Name ... Bill 2 center 218 ... no mid-career 35 Jake 10 forward 205 ... no rookie 24 Kyle 11 center 206 ... no mid-career 29 Pete 16 forward 215 ... no mid-career 30 Unit 21 forward 202 ... no mid-career 31 [5 rows x 8 columns] Add a new row, Zorg: ID Position Height ... ShoeSponsor CareerStage Age Name ... Adam 1 forward 192 ... yes veteran 29 Bill 2 center 218 ... no mid-career 35 Clay 3 forward 197 ... no rookie 22 Dale 4 forward 192 ... no rookie 22 Evan 5 forward 198 ... yes veteran 29 Fred 6 guard 166 ... yes rookie 21 Gale 7 forward 195 ... no veteran 25 Hank 8 guard 182 ... yes rookie 21 Iain 9 guard 189 ... yes mid-career 27 Jake 10 forward 205 ... no rookie 24 Kyle 11 center 206 ... no mid-career 29 Lyle 12 guard 185 ... yes rookie 23 Mike 13 guard 172 ... yes rookie 24 Nate 14 guard 169 ... yes rookie 24 Odad 15 guard 185 ... yes mid-career 29 Pete 16 forward 215 ... no mid-career 30 Quin 17 guard 158 ... yes veteran 29 Rafe 18 guard 190 ... yes mid-career 27 Stan 19 center 195 ... no mid-career 28 Trig 20 guard 192 ... yes mid-career 32 Unit 21 forward 202 ... no mid-career 31 Vole 22 forward 184 ... no mid-career 32 Wade 23 forward 190 ... no rookie 22 Xand 24 guard 178 ... no rookie 21 Yang 25 guard 185 ... yes mid-career 31 Zeke 26 forward 191 ... no rookie 19 Zorg 27 center 190 ... no rookie 24 [27 rows x 8 columns] Add a new column, PointAverage: Compute average and sum of point averages: Average personal points per game = 3.1370370370370364 Average total points per game = 84.69999999999999 Compute average points per position: Average forward points per game = 4.009090909090909 Average center points per game = 3.625 Average guard points per game = 2.1750000000000003 Correct height of Dale: Before: 192 After: 203 Print minimum of numeric data ID 1.0 Height 158.0 Weight 183.0 SponsorshipEarnings 0.0 Age 19.0 PointAverage 0.2 dtype: float64 Print mean of numeric data ID 14.000000 Height 190.074074 Weight 211.629630 SponsorshipEarnings 770370.370370 Age 26.296296 PointAverage 3.137037 dtype: float64 Print maximum of numeric data ID 27.0 Height 218.0 Weight 251.0 SponsorshipEarnings 1855000.0 Age 35.0 PointAverage 7.6 dtype: float64 Print std of numeric data ID 7.937254 Height 13.950258 Weight 18.385086 SponsorshipEarnings 573033.033559 Age 4.231883 PointAverage 1.926964 dtype: float64 Compute all correlations: data.corr ( numeric_only = True ) ID Height ... Age PointAverage ID 1.000000 -0.226476 ... 0.001145 -0.209724 Height -0.226476 1.000000 ... 0.344906 0.518549 Weight -0.238792 0.904377 ... 0.320315 0.425649 SponsorshipEarnings -0.172845 -0.200645 ... -0.847705 -0.047171 Age 0.001145 0.344906 ... 1.000000 0.149530 PointAverage -0.209724 0.518549 ... 0.149530 1.000000 [6 rows x 6 columns] Compute all correlations (Try harder!): data.corr ( numeric_only = True ).to_string() ID Height Weight SponsorshipEarnings Age PointAverage ID 1.000000 -0.226476 -0.238792 -0.172845 0.001145 -0.209724 Height -0.226476 1.000000 0.904377 -0.200645 0.344906 0.518549 Weight -0.238792 0.904377 1.000000 -0.208663 0.320315 0.425649 SponsorshipEarnings -0.172845 -0.200645 -0.208663 1.000000 -0.847705 -0.047171 Age 0.001145 0.344906 0.320315 -0.847705 1.000000 0.149530 PointAverage -0.209724 0.518549 0.425649 -0.047171 0.149530 1.000000 Histogram player age Graphics saved as "age_hist.png" Plot player height versus weight Graphics saved as "height_weight_scatter.png" Plot player age versus sponsorship earnings Graphics saved as "age_earnings_scatter.png" Estimate linear model weight = slope * height + intercept computed linear model model slope = 1.191880892428426 model intercept = -14.916027405284552 Graphics saved as "height_weight_linear.png" Estimate linear model earnings = slope * age + intercept computed linear model model slope = -114786.43016226556 model intercept = 3788828.3487114278 Graphics saved as "age_earnings_linear.png" Save revised data to a new csv file. Data stored as "basketball2_data.csv"