├── MasteringPandas-chap3_DataStructures.ipynb ├── MasteringPandas-chap4_Indexing.ipynb ├── MasteringPandas-chap5_Grouping_Merging_Reshaping.ipynb ├── MasteringPandas-chap6_MissingDataTimeSeriesPlotting.ipynb ├── MasteringPandas_chap11_MachineLearning.ipynb ├── MasteringPandas_chap7-ClassicalStatistics.ipynb ├── MasteringPandas_chap8-BayesianStatistics.ipynb └── README.md /MasteringPandas-chap5_Grouping_Merging_Reshaping.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 2, 6 | "metadata": { 7 | "collapsed": true 8 | }, 9 | "outputs": [], 10 | "source": [ 11 | "import numpy as np\n", 12 | "import pandas as pd" 13 | ] 14 | }, 15 | { 16 | "cell_type": "markdown", 17 | "metadata": {}, 18 | "source": [ 19 | "

Grouping of Data

" 20 | ] 21 | }, 22 | { 23 | "cell_type": "markdown", 24 | "metadata": {}, 25 | "source": [ 26 | "

groupby Operation

" 27 | ] 28 | }, 29 | { 30 | "cell_type": "markdown", 31 | "metadata": {}, 32 | "source": [ 33 | "Read in and examine data " 34 | ] 35 | }, 36 | { 37 | "cell_type": "code", 38 | "execution_count": 5, 39 | "metadata": { 40 | "collapsed": false 41 | }, 42 | "outputs": [], 43 | "source": [ 44 | "uefaDF=pd.read_csv('./data/euro_winners.csv')" 45 | ] 46 | }, 47 | { 48 | "cell_type": "code", 49 | "execution_count": 6, 50 | "metadata": { 51 | "collapsed": false 52 | }, 53 | "outputs": [ 54 | { 55 | "data": { 56 | "text/html": [ 57 | "
\n", 58 | "\n", 59 | " \n", 60 | " \n", 61 | " \n", 62 | " \n", 63 | " \n", 64 | " \n", 65 | " \n", 66 | " \n", 67 | " \n", 68 | " \n", 69 | " \n", 70 | " \n", 71 | " \n", 72 | " \n", 73 | " \n", 74 | " \n", 75 | " \n", 76 | " \n", 77 | " \n", 78 | " \n", 79 | " \n", 80 | " \n", 81 | " \n", 82 | " \n", 83 | " \n", 84 | " \n", 85 | " \n", 86 | " \n", 87 | " \n", 88 | " \n", 89 | " \n", 90 | " \n", 91 | " \n", 92 | " \n", 93 | " \n", 94 | " \n", 95 | " \n", 96 | " \n", 97 | " \n", 98 | " \n", 99 | " \n", 100 | " \n", 101 | " \n", 102 | " \n", 103 | " \n", 104 | " \n", 105 | " \n", 106 | " \n", 107 | " \n", 108 | " \n", 109 | " \n", 110 | " \n", 111 | " \n", 112 | " \n", 113 | " \n", 114 | " \n", 115 | " \n", 116 | " \n", 117 | " \n", 118 | " \n", 119 | " \n", 120 | " \n", 121 | " \n", 122 | " \n", 123 | " \n", 124 | " \n", 125 | " \n", 126 | " \n", 127 | " \n", 128 | " \n", 129 | "
SeasonNationWinnersScoreRunners-upRunner-UpNationVenueAttendance
0 1955–56 Spain Real Madrid 4–3 Stade de Reims  France Parc des Princes,Paris 38239
1 1956–57 Spain Real Madrid 2–0 Fiorentina Italy Santiago Bernabéu Stadium, Madrid 124000
2 1957–58 Spain Real Madrid 3–2 Milan Italy Heysel Stadium,Brussels 67000
3 1958–59 Spain Real Madrid 2–0 Stade de Reims  France Neckarstadion,Stuttgart 72000
4 1959–60 Spain Real Madrid 7–3 Eintracht Frankfurt Germany Hampden Park,Glasgow 127621
\n", 130 | "
" 131 | ], 132 | "text/plain": [ 133 | " Season Nation Winners Score Runners-up Runner-UpNation \\\n", 134 | "0 1955–56 Spain Real Madrid 4–3 Stade de Reims  France \n", 135 | "1 1956–57 Spain Real Madrid 2–0 Fiorentina Italy \n", 136 | "2 1957–58 Spain Real Madrid 3–2 Milan Italy \n", 137 | "3 1958–59 Spain Real Madrid 2–0 Stade de Reims  France \n", 138 | "4 1959–60 Spain Real Madrid 7–3 Eintracht Frankfurt Germany \n", 139 | "\n", 140 | " Venue Attendance \n", 141 | "0 Parc des Princes,Paris 38239 \n", 142 | "1 Santiago Bernabéu Stadium, Madrid 124000 \n", 143 | "2 Heysel Stadium,Brussels 67000 \n", 144 | "3 Neckarstadion,Stuttgart 72000 \n", 145 | "4 Hampden Park,Glasgow 127621 " 146 | ] 147 | }, 148 | "execution_count": 6, 149 | "metadata": {}, 150 | "output_type": "execute_result" 151 | } 152 | ], 153 | "source": [ 154 | "uefaDF.head()" 155 | ] 156 | }, 157 | { 158 | "cell_type": "markdown", 159 | "metadata": {}, 160 | "source": [ 161 | "Rank nations by number of club championships" 162 | ] 163 | }, 164 | { 165 | "cell_type": "code", 166 | "execution_count": 8, 167 | "metadata": { 168 | "collapsed": false 169 | }, 170 | "outputs": [ 171 | { 172 | "data": { 173 | "text/plain": [ 174 | "pandas.core.groupby.DataFrameGroupBy" 175 | ] 176 | }, 177 | "execution_count": 8, 178 | "metadata": {}, 179 | "output_type": "execute_result" 180 | } 181 | ], 182 | "source": [ 183 | "nationsGrp =uefaDF.groupby('Nation')\n", 184 | "type(nationsGrp)" 185 | ] 186 | }, 187 | { 188 | "cell_type": "code", 189 | "execution_count": 9, 190 | "metadata": { 191 | "collapsed": false 192 | }, 193 | "outputs": [ 194 | { 195 | "data": { 196 | "text/plain": [ 197 | "{'England': [12, 21, 22, 23, 24, 25, 26, 28, 43, 49, 52, 56],\n", 198 | " 'France': [37],\n", 199 | " 'Germany': [18, 19, 20, 27, 41, 45, 57],\n", 200 | " 'Italy': [7, 8, 9, 13, 29, 33, 34, 38, 40, 47, 51, 54],\n", 201 | " 'Netherlands': [14, 15, 16, 17, 32, 39],\n", 202 | " 'Portugal': [5, 6, 31, 48],\n", 203 | " 'Romania': [30],\n", 204 | " 'Scotland': [11],\n", 205 | " 'Spain': [0, 1, 2, 3, 4, 10, 36, 42, 44, 46, 50, 53, 55],\n", 206 | " 'Yugoslavia': [35]}" 207 | ] 208 | }, 209 | "execution_count": 9, 210 | "metadata": {}, 211 | "output_type": "execute_result" 212 | } 213 | ], 214 | "source": [ 215 | "nationsGrp.groups" 216 | ] 217 | }, 218 | { 219 | "cell_type": "markdown", 220 | "metadata": {}, 221 | "source": [ 222 | "Obtain number of groups" 223 | ] 224 | }, 225 | { 226 | "cell_type": "code", 227 | "execution_count": 10, 228 | "metadata": { 229 | "collapsed": false 230 | }, 231 | "outputs": [ 232 | { 233 | "data": { 234 | "text/plain": [ 235 | "10" 236 | ] 237 | }, 238 | "execution_count": 10, 239 | "metadata": {}, 240 | "output_type": "execute_result" 241 | } 242 | ], 243 | "source": [ 244 | "len(nationsGrp.groups)" 245 | ] 246 | }, 247 | { 248 | "cell_type": "markdown", 249 | "metadata": {}, 250 | "source": [ 251 | "Display the number of wins by each nation in descending order:" 252 | ] 253 | }, 254 | { 255 | "cell_type": "code", 256 | "execution_count": 11, 257 | "metadata": { 258 | "collapsed": true 259 | }, 260 | "outputs": [], 261 | "source": [ 262 | "nationWins=nationsGrp.size()" 263 | ] 264 | }, 265 | { 266 | "cell_type": "code", 267 | "execution_count": 12, 268 | "metadata": { 269 | "collapsed": false 270 | }, 271 | "outputs": [ 272 | { 273 | "data": { 274 | "text/plain": [ 275 | "Nation\n", 276 | "Spain 13\n", 277 | "Italy 12\n", 278 | "England 12\n", 279 | "Germany 7\n", 280 | "Netherlands 6\n", 281 | "Portugal 4\n", 282 | "Yugoslavia 1\n", 283 | "Scotland 1\n", 284 | "Romania 1\n", 285 | "France 1\n", 286 | "dtype: int64" 287 | ] 288 | }, 289 | "execution_count": 12, 290 | "metadata": {}, 291 | "output_type": "execute_result" 292 | } 293 | ], 294 | "source": [ 295 | "nationWins.sort(ascending=False);nationWins" 296 | ] 297 | }, 298 | { 299 | "cell_type": "markdown", 300 | "metadata": {}, 301 | "source": [] 302 | }, 303 | { 304 | "cell_type": "code", 305 | "execution_count": 14, 306 | "metadata": { 307 | "collapsed": false 308 | }, 309 | "outputs": [ 310 | { 311 | "data": { 312 | "text/plain": [ 313 | "Nation Winners \n", 314 | "Spain Real Madrid 9\n", 315 | "Italy Milan 7\n", 316 | "Germany Bayern Munich 5\n", 317 | "England Liverpool 5\n", 318 | "Spain Barcelona 4\n", 319 | "Netherlands Ajax 4\n", 320 | "England Manchester United 3\n", 321 | "Italy Internazionale 3\n", 322 | " Juventus 2\n", 323 | "Portugal Porto 2\n", 324 | " Benfica 2\n", 325 | "England Nottingham Forest 2\n", 326 | " Chelsea 1\n", 327 | "France Marseille 1\n", 328 | "Yugoslavia Red Star Belgrade 1\n", 329 | "Germany Borussia Dortmund 1\n", 330 | " Hamburg 1\n", 331 | "Netherlands Feyenoord 1\n", 332 | " PSV Eindhoven 1\n", 333 | "Romania Steaua Bucure?ti 1\n", 334 | "Scotland Celtic 1\n", 335 | "England Aston Villa 1\n", 336 | "dtype: int64" 337 | ] 338 | }, 339 | "execution_count": 14, 340 | "metadata": {}, 341 | "output_type": "execute_result" 342 | } 343 | ], 344 | "source": [ 345 | "winnersGrp=uefaDF.groupby(['Nation','Winners'])\n", 346 | "clubWins=winnersGrp.size()\n", 347 | "clubWins.sort(ascending=False)\n", 348 | "clubWins\n" 349 | ] 350 | }, 351 | { 352 | "cell_type": "markdown", 353 | "metadata": {}, 354 | "source": [ 355 | "Read in goal stats dataset" 356 | ] 357 | }, 358 | { 359 | "cell_type": "code", 360 | "execution_count": 17, 361 | "metadata": { 362 | "collapsed": true 363 | }, 364 | "outputs": [], 365 | "source": [ 366 | "goalStatsDF=pd.read_csv('./data/goal_stats_euro_leagues_2012-13.csv')\n", 367 | "goalStatsDF=goalStatsDF.set_index('Month')\n" 368 | ] 369 | }, 370 | { 371 | "cell_type": "markdown", 372 | "metadata": {}, 373 | "source": [ 374 | "Snapshot of dataset:" 375 | ] 376 | }, 377 | { 378 | "cell_type": "code", 379 | "execution_count": 18, 380 | "metadata": { 381 | "collapsed": false 382 | }, 383 | "outputs": [ 384 | { 385 | "data": { 386 | "text/html": [ 387 | "
\n", 388 | "\n", 389 | " \n", 390 | " \n", 391 | " \n", 392 | " \n", 393 | " \n", 394 | " \n", 395 | " \n", 396 | " \n", 397 | " \n", 398 | " \n", 399 | " \n", 400 | " \n", 401 | " \n", 402 | " \n", 403 | " \n", 404 | " \n", 405 | " \n", 406 | " \n", 407 | " \n", 408 | " \n", 409 | " \n", 410 | " \n", 411 | " \n", 412 | " \n", 413 | " \n", 414 | " \n", 415 | " \n", 416 | " \n", 417 | " \n", 418 | " \n", 419 | " \n", 420 | " \n", 421 | " \n", 422 | " \n", 423 | " \n", 424 | " \n", 425 | " \n", 426 | " \n", 427 | " \n", 428 | " \n", 429 | " \n", 430 | " \n", 431 | " \n", 432 | " \n", 433 | "
StatEPLLa LigaSerie ABundesliga
Month
08/01/2012 MatchesPlayed 20 20 10 10
09/01/2012 MatchesPlayed 38 39 50 44
10/01/2012 MatchesPlayed 31 31 39 27
\n", 434 | "
" 435 | ], 436 | "text/plain": [ 437 | " Stat EPL La Liga Serie A Bundesliga\n", 438 | "Month \n", 439 | "08/01/2012 MatchesPlayed 20 20 10 10\n", 440 | "09/01/2012 MatchesPlayed 38 39 50 44\n", 441 | "10/01/2012 MatchesPlayed 31 31 39 27" 442 | ] 443 | }, 444 | "execution_count": 18, 445 | "metadata": {}, 446 | "output_type": "execute_result" 447 | } 448 | ], 449 | "source": [ 450 | "goalStatsDF.head(3)\n" 451 | ] 452 | }, 453 | { 454 | "cell_type": "code", 455 | "execution_count": 19, 456 | "metadata": { 457 | "collapsed": false 458 | }, 459 | "outputs": [ 460 | { 461 | "data": { 462 | "text/html": [ 463 | "
\n", 464 | "\n", 465 | " \n", 466 | " \n", 467 | " \n", 468 | " \n", 469 | " \n", 470 | " \n", 471 | " \n", 472 | " \n", 473 | " \n", 474 | " \n", 475 | " \n", 476 | " \n", 477 | " \n", 478 | " \n", 479 | " \n", 480 | " \n", 481 | " \n", 482 | " \n", 483 | " \n", 484 | " \n", 485 | " \n", 486 | " \n", 487 | " \n", 488 | " \n", 489 | " \n", 490 | " \n", 491 | " \n", 492 | " \n", 493 | " \n", 494 | " \n", 495 | " \n", 496 | " \n", 497 | " \n", 498 | " \n", 499 | " \n", 500 | " \n", 501 | " \n", 502 | " \n", 503 | " \n", 504 | " \n", 505 | " \n", 506 | " \n", 507 | " \n", 508 | " \n", 509 | "
StatEPLLa LigaSerie ABundesliga
Month
04/01/2013 GoalsScored 105 127 102 104
05/01/2013 GoalsScored 96 109 102 92
06/01/2013 GoalsScored NaN 80 NaN NaN
\n", 510 | "
" 511 | ], 512 | "text/plain": [ 513 | " Stat EPL La Liga Serie A Bundesliga\n", 514 | "Month \n", 515 | "04/01/2013 GoalsScored 105 127 102 104\n", 516 | "05/01/2013 GoalsScored 96 109 102 92\n", 517 | "06/01/2013 GoalsScored NaN 80 NaN NaN" 518 | ] 519 | }, 520 | "execution_count": 19, 521 | "metadata": {}, 522 | "output_type": "execute_result" 523 | } 524 | ], 525 | "source": [ 526 | "goalStatsDF.tail(3)" 527 | ] 528 | }, 529 | { 530 | "cell_type": "markdown", 531 | "metadata": {}, 532 | "source": [ 533 | "Display the stats, but by grouped year instead. " 534 | ] 535 | }, 536 | { 537 | "cell_type": "code", 538 | "execution_count": null, 539 | "metadata": { 540 | "collapsed": true 541 | }, 542 | "outputs": [], 543 | "source": [ 544 | "goalStatsGroupedByYear = goalStatsDF.groupby(lambda Month: Month.split('/')[2])\n" 545 | ] 546 | }, 547 | { 548 | "cell_type": "code", 549 | "execution_count": 23, 550 | "metadata": { 551 | "collapsed": false 552 | }, 553 | "outputs": [ 554 | { 555 | "name": "stdout", 556 | "output_type": "stream", 557 | "text": [ 558 | "2012\n", 559 | " Stat EPL La Liga Serie A Bundesliga\n", 560 | "Month \n", 561 | "08/01/2012 MatchesPlayed 20 20 10 10\n", 562 | "09/01/2012 MatchesPlayed 38 39 50 44\n", 563 | "10/01/2012 MatchesPlayed 31 31 39 27\n", 564 | "11/01/2012 MatchesPlayed 50 41 42 46\n", 565 | "12/01/2012 MatchesPlayed 59 39 39 26\n", 566 | "08/01/2012 GoalsScored 57 60 21 23\n", 567 | "09/01/2012 GoalsScored 111 112 133 135\n", 568 | "10/01/2012 GoalsScored 95 88 97 77\n", 569 | "11/01/2012 GoalsScored 121 116 120 137\n", 570 | "12/01/2012 GoalsScored 183 109 125 72\n", 571 | "2013\n", 572 | " Stat EPL La Liga Serie A Bundesliga\n", 573 | "Month \n", 574 | "01/01/2013 MatchesPlayed 42 40 40 18\n", 575 | "02/01/2013 MatchesPlayed 30 40 40 36\n", 576 | "03/01/2013 MatchesPlayed 35 38 39 36\n", 577 | "04/01/2013 MatchesPlayed 42 42 41 36\n", 578 | "05/01/2013 MatchesPlayed 33 40 40 27\n", 579 | "06/02/2013 MatchesPlayed NaN 10 NaN NaN\n", 580 | "01/01/2013 GoalsScored 117 121 104 51\n", 581 | "02/01/2013 GoalsScored 87 110 100 101\n", 582 | "03/01/2013 GoalsScored 91 101 99 106\n", 583 | "04/01/2013 GoalsScored 105 127 102 104\n", 584 | "05/01/2013 GoalsScored 96 109 102 92\n", 585 | "06/01/2013 GoalsScored NaN 80 NaN NaN\n" 586 | ] 587 | } 588 | ], 589 | "source": [ 590 | "for name, group in goalStatsGroupedByYear:\n", 591 | " \t print name\n", 592 | " \t print group\n" 593 | ] 594 | }, 595 | { 596 | "cell_type": "markdown", 597 | "metadata": {}, 598 | "source": [ 599 | "Group by individual month using level arg:" 600 | ] 601 | }, 602 | { 603 | "cell_type": "code", 604 | "execution_count": 24, 605 | "metadata": { 606 | "collapsed": true 607 | }, 608 | "outputs": [], 609 | "source": [ 610 | "goalStatsGroupedByMonth = goalStatsDF.groupby(level=0)" 611 | ] 612 | }, 613 | { 614 | "cell_type": "code", 615 | "execution_count": 28, 616 | "metadata": { 617 | "collapsed": false 618 | }, 619 | "outputs": [ 620 | { 621 | "name": "stdout", 622 | "output_type": "stream", 623 | "text": [ 624 | " Stat EPL La Liga Serie A Bundesliga\n", 625 | "Month \n", 626 | "01/01/2013 MatchesPlayed 42 40 40 18\n", 627 | "01/01/2013 GoalsScored 117 121 104 51\n", 628 | "\n", 629 | "\n", 630 | " Stat EPL La Liga Serie A Bundesliga\n", 631 | "Month \n", 632 | "02/01/2013 MatchesPlayed 30 40 40 36\n", 633 | "02/01/2013 GoalsScored 87 110 100 101\n", 634 | "\n", 635 | "\n", 636 | " Stat EPL La Liga Serie A Bundesliga\n", 637 | "Month \n", 638 | "03/01/2013 MatchesPlayed 35 38 39 36\n", 639 | "03/01/2013 GoalsScored 91 101 99 106\n", 640 | "\n", 641 | "\n", 642 | " Stat EPL La Liga Serie A Bundesliga\n", 643 | "Month \n", 644 | "04/01/2013 MatchesPlayed 42 42 41 36\n", 645 | "04/01/2013 GoalsScored 105 127 102 104\n", 646 | "\n", 647 | "\n", 648 | " Stat EPL La Liga Serie A Bundesliga\n", 649 | "Month \n", 650 | "05/01/2013 MatchesPlayed 33 40 40 27\n", 651 | "05/01/2013 GoalsScored 96 109 102 92\n", 652 | "\n", 653 | "\n", 654 | " Stat EPL La Liga Serie A Bundesliga\n", 655 | "Month \n", 656 | "06/01/2013 GoalsScored NaN 80 NaN NaN\n", 657 | "\n", 658 | "\n", 659 | " Stat EPL La Liga Serie A Bundesliga\n", 660 | "Month \n", 661 | "06/02/2013 MatchesPlayed NaN 10 NaN NaN\n", 662 | "\n", 663 | "\n", 664 | " Stat EPL La Liga Serie A Bundesliga\n", 665 | "Month \n", 666 | "08/01/2012 MatchesPlayed 20 20 10 10\n", 667 | "08/01/2012 GoalsScored 57 60 21 23\n", 668 | "\n", 669 | "\n", 670 | " Stat EPL La Liga Serie A Bundesliga\n", 671 | "Month \n", 672 | "09/01/2012 MatchesPlayed 38 39 50 44\n", 673 | "09/01/2012 GoalsScored 111 112 133 135\n", 674 | "\n", 675 | "\n", 676 | " Stat EPL La Liga Serie A Bundesliga\n", 677 | "Month \n", 678 | "10/01/2012 MatchesPlayed 31 31 39 27\n", 679 | "10/01/2012 GoalsScored 95 88 97 77\n", 680 | "\n", 681 | "\n", 682 | " Stat EPL La Liga Serie A Bundesliga\n", 683 | "Month \n", 684 | "11/01/2012 MatchesPlayed 50 41 42 46\n", 685 | "11/01/2012 GoalsScored 121 116 120 137\n", 686 | "\n", 687 | "\n", 688 | " Stat EPL La Liga Serie A Bundesliga\n", 689 | "Month \n", 690 | "12/01/2012 MatchesPlayed 59 39 39 26\n", 691 | "12/01/2012 GoalsScored 183 109 125 72\n", 692 | "\n", 693 | "\n" 694 | ] 695 | } 696 | ], 697 | "source": [ 698 | "for name, group in goalStatsGroupedByMonth:\n", 699 | " #print name \n", 700 | " print group\n", 701 | " print \"\\n\"\n" 702 | ] 703 | }, 704 | { 705 | "cell_type": "markdown", 706 | "metadata": {}, 707 | "source": [ 708 | "group by multiple keys:" 709 | ] 710 | }, 711 | { 712 | "cell_type": "code", 713 | "execution_count": 39, 714 | "metadata": { 715 | "collapsed": false 716 | }, 717 | "outputs": [], 718 | "source": [ 719 | "goalStatsDF=goalStatsDF.reset_index()\n", 720 | "goalStatsDF=goalStatsDF.set_index(['Month','Stat'])\n", 721 | "\n", 722 | "\n" 723 | ] 724 | }, 725 | { 726 | "cell_type": "code", 727 | "execution_count": 41, 728 | "metadata": { 729 | "collapsed": false 730 | }, 731 | "outputs": [ 732 | { 733 | "name": "stdout", 734 | "output_type": "stream", 735 | "text": [ 736 | "('01/01/2013', 'GoalsScored')\n", 737 | " level_0 index EPL La Liga Serie A Bundesliga\n", 738 | "Month Stat \n", 739 | "01/01/2013 GoalsScored 16 16 117 121 104 51\n", 740 | "('01/01/2013', 'MatchesPlayed')\n", 741 | " level_0 index EPL La Liga Serie A Bundesliga\n", 742 | "Month Stat \n", 743 | "01/01/2013 MatchesPlayed 5 5 42 40 40 18\n", 744 | "('02/01/2013', 'GoalsScored')\n", 745 | " level_0 index EPL La Liga Serie A Bundesliga\n", 746 | "Month Stat \n", 747 | "02/01/2013 GoalsScored 17 17 87 110 100 101\n", 748 | "('02/01/2013', 'MatchesPlayed')\n", 749 | " level_0 index EPL La Liga Serie A Bundesliga\n", 750 | "Month Stat \n", 751 | "02/01/2013 MatchesPlayed 6 6 30 40 40 36\n", 752 | "('03/01/2013', 'GoalsScored')\n", 753 | " level_0 index EPL La Liga Serie A Bundesliga\n", 754 | "Month Stat \n", 755 | "03/01/2013 GoalsScored 18 18 91 101 99 106\n", 756 | "('03/01/2013', 'MatchesPlayed')\n", 757 | " level_0 index EPL La Liga Serie A Bundesliga\n", 758 | "Month Stat \n", 759 | "03/01/2013 MatchesPlayed 7 7 35 38 39 36\n", 760 | "('04/01/2013', 'GoalsScored')\n", 761 | " level_0 index EPL La Liga Serie A Bundesliga\n", 762 | "Month Stat \n", 763 | "04/01/2013 GoalsScored 19 19 105 127 102 104\n", 764 | "('04/01/2013', 'MatchesPlayed')\n", 765 | " level_0 index EPL La Liga Serie A Bundesliga\n", 766 | "Month Stat \n", 767 | "04/01/2013 MatchesPlayed 8 8 42 42 41 36\n", 768 | "('05/01/2013', 'GoalsScored')\n", 769 | " level_0 index EPL La Liga Serie A Bundesliga\n", 770 | "Month Stat \n", 771 | "05/01/2013 GoalsScored 20 20 96 109 102 92\n", 772 | "('05/01/2013', 'MatchesPlayed')\n", 773 | " level_0 index EPL La Liga Serie A Bundesliga\n", 774 | "Month Stat \n", 775 | "05/01/2013 MatchesPlayed 9 9 33 40 40 27\n", 776 | "('06/01/2013', 'GoalsScored')\n", 777 | " level_0 index EPL La Liga Serie A Bundesliga\n", 778 | "Month Stat \n", 779 | "06/01/2013 GoalsScored 21 21 NaN 80 NaN NaN\n", 780 | "('06/02/2013', 'MatchesPlayed')\n", 781 | " level_0 index EPL La Liga Serie A Bundesliga\n", 782 | "Month Stat \n", 783 | "06/02/2013 MatchesPlayed 10 10 NaN 10 NaN NaN\n", 784 | "('08/01/2012', 'GoalsScored')\n", 785 | " level_0 index EPL La Liga Serie A Bundesliga\n", 786 | "Month Stat \n", 787 | "08/01/2012 GoalsScored 11 11 57 60 21 23\n", 788 | "('08/01/2012', 'MatchesPlayed')\n", 789 | " level_0 index EPL La Liga Serie A Bundesliga\n", 790 | "Month Stat \n", 791 | "08/01/2012 MatchesPlayed 0 0 20 20 10 10\n", 792 | "('09/01/2012', 'GoalsScored')\n", 793 | " level_0 index EPL La Liga Serie A Bundesliga\n", 794 | "Month Stat \n", 795 | "09/01/2012 GoalsScored 12 12 111 112 133 135\n", 796 | "('09/01/2012', 'MatchesPlayed')\n", 797 | " level_0 index EPL La Liga Serie A Bundesliga\n", 798 | "Month Stat \n", 799 | "09/01/2012 MatchesPlayed 1 1 38 39 50 44\n", 800 | "('10/01/2012', 'GoalsScored')\n", 801 | " level_0 index EPL La Liga Serie A Bundesliga\n", 802 | "Month Stat \n", 803 | "10/01/2012 GoalsScored 13 13 95 88 97 77\n", 804 | "('10/01/2012', 'MatchesPlayed')\n", 805 | " level_0 index EPL La Liga Serie A Bundesliga\n", 806 | "Month Stat \n", 807 | "10/01/2012 MatchesPlayed 2 2 31 31 39 27\n", 808 | "('11/01/2012', 'GoalsScored')\n", 809 | " level_0 index EPL La Liga Serie A Bundesliga\n", 810 | "Month Stat \n", 811 | "11/01/2012 GoalsScored 14 14 121 116 120 137\n", 812 | "('11/01/2012', 'MatchesPlayed')\n", 813 | " level_0 index EPL La Liga Serie A Bundesliga\n", 814 | "Month Stat \n", 815 | "11/01/2012 MatchesPlayed 3 3 50 41 42 46\n", 816 | "('12/01/2012', 'GoalsScored')\n", 817 | " level_0 index EPL La Liga Serie A Bundesliga\n", 818 | "Month Stat \n", 819 | "12/01/2012 GoalsScored 15 15 183 109 125 72\n", 820 | "('12/01/2012', 'MatchesPlayed')\n", 821 | " level_0 index EPL La Liga Serie A Bundesliga\n", 822 | "Month Stat \n", 823 | "12/01/2012 MatchesPlayed 4 4 59 39 39 26\n" 824 | ] 825 | } 826 | ], 827 | "source": [ 828 | "monthStatGroup=goalStatsDF.groupby(level=['Month','Stat'])\n", 829 | "for name, group in monthStatGroup:\n", 830 | " print name\n", 831 | " print group\n" 832 | ] 833 | }, 834 | { 835 | "cell_type": "markdown", 836 | "metadata": {}, 837 | "source": [ 838 | "

Using groupby with a MultiIndex

" 839 | ] 840 | }, 841 | { 842 | "cell_type": "markdown", 843 | "metadata": {}, 844 | "source": [ 845 | "Read in the goal stats DataFrame again:" 846 | ] 847 | }, 848 | { 849 | "cell_type": "code", 850 | "execution_count": 43, 851 | "metadata": { 852 | "collapsed": false 853 | }, 854 | "outputs": [], 855 | "source": [ 856 | "goalStatsDF3=pd.read_csv('./data/goal_stats_euro_leagues_2012-13.csv')\n", 857 | "goalStatsDF3=goalStatsDF3.set_index(['Month','Stat'])\n" 858 | ] 859 | }, 860 | { 861 | "cell_type": "code", 862 | "execution_count": 53, 863 | "metadata": { 864 | "collapsed": false 865 | }, 866 | "outputs": [ 867 | { 868 | "name": "stdout", 869 | "output_type": "stream", 870 | "text": [ 871 | " EPL La Liga Serie A Bundesliga\n", 872 | "Month Stat \n", 873 | "08/01/2012 MatchesPlayed 20 20 10 10\n", 874 | "09/01/2012 MatchesPlayed 38 39 50 44\n", 875 | "10/01/2012 MatchesPlayed 31 31 39 27\n", 876 | " EPL La Liga Serie A Bundesliga\n", 877 | "Month Stat \n", 878 | "04/01/2013 GoalsScored 105 127 102 104\n", 879 | "05/01/2013 GoalsScored 96 109 102 92\n", 880 | "06/01/2013 GoalsScored NaN 80 NaN NaN\n" 881 | ] 882 | } 883 | ], 884 | "source": [ 885 | "print goalStatsDF3.head(3)\n", 886 | "print goalStatsDF3.tail(3)" 887 | ] 888 | }, 889 | { 890 | "cell_type": "markdown", 891 | "metadata": {}, 892 | "source": [ 893 | "Compute the total number of goals scored and total matches played for the entire season for each league." 894 | ] 895 | }, 896 | { 897 | "cell_type": "code", 898 | "execution_count": 47, 899 | "metadata": { 900 | "collapsed": false 901 | }, 902 | "outputs": [ 903 | { 904 | "data": { 905 | "text/html": [ 906 | "
\n", 907 | "\n", 908 | " \n", 909 | " \n", 910 | " \n", 911 | " \n", 912 | " \n", 913 | " \n", 914 | " \n", 915 | " \n", 916 | " \n", 917 | " \n", 918 | " \n", 919 | " \n", 920 | " \n", 921 | " \n", 922 | " \n", 923 | " \n", 924 | " \n", 925 | " \n", 926 | " \n", 927 | " \n", 928 | " \n", 929 | " \n", 930 | " \n", 931 | " \n", 932 | " \n", 933 | " \n", 934 | " \n", 935 | " \n", 936 | " \n", 937 | " \n", 938 | " \n", 939 | " \n", 940 | "
EPLLa LigaSerie ABundesliga
Stat
GoalsScored 1063 1133 1003 898
MatchesPlayed 380 380 380 306
\n", 941 | "
" 942 | ], 943 | "text/plain": [ 944 | " EPL La Liga Serie A Bundesliga\n", 945 | "Stat \n", 946 | "GoalsScored 1063 1133 1003 898\n", 947 | "MatchesPlayed 380 380 380 306" 948 | ] 949 | }, 950 | "execution_count": 47, 951 | "metadata": {}, 952 | "output_type": "execute_result" 953 | } 954 | ], 955 | "source": [ 956 | "grouped3=goalStatsDF3.groupby(level='Stat')\n", 957 | "grouped3.sum()" 958 | ] 959 | }, 960 | { 961 | "cell_type": "markdown", 962 | "metadata": {}, 963 | "source": [ 964 | "Use sum directly but pass level as parameter to achieve same result." 965 | ] 966 | }, 967 | { 968 | "cell_type": "code", 969 | "execution_count": 45, 970 | "metadata": { 971 | "collapsed": false 972 | }, 973 | "outputs": [ 974 | { 975 | "data": { 976 | "text/html": [ 977 | "
\n", 978 | "\n", 979 | " \n", 980 | " \n", 981 | " \n", 982 | " \n", 983 | " \n", 984 | " \n", 985 | " \n", 986 | " \n", 987 | " \n", 988 | " \n", 989 | " \n", 990 | " \n", 991 | " \n", 992 | " \n", 993 | " \n", 994 | " \n", 995 | " \n", 996 | " \n", 997 | " \n", 998 | " \n", 999 | " \n", 1000 | " \n", 1001 | " \n", 1002 | " \n", 1003 | " \n", 1004 | " \n", 1005 | " \n", 1006 | " \n", 1007 | " \n", 1008 | " \n", 1009 | " \n", 1010 | " \n", 1011 | "
EPLLa LigaSerie ABundesliga
Stat
GoalsScored 1063 1133 1003 898
MatchesPlayed 380 380 380 306
\n", 1012 | "
" 1013 | ], 1014 | "text/plain": [ 1015 | " EPL La Liga Serie A Bundesliga\n", 1016 | "Stat \n", 1017 | "GoalsScored 1063 1133 1003 898\n", 1018 | "MatchesPlayed 380 380 380 306" 1019 | ] 1020 | }, 1021 | "execution_count": 45, 1022 | "metadata": {}, 1023 | "output_type": "execute_result" 1024 | } 1025 | ], 1026 | "source": [ 1027 | "goalStatsDF3.sum(level='Stat')" 1028 | ] 1029 | }, 1030 | { 1031 | "cell_type": "markdown", 1032 | "metadata": {}, 1033 | "source": [ 1034 | "Calculate goals per game ratio:" 1035 | ] 1036 | }, 1037 | { 1038 | "cell_type": "code", 1039 | "execution_count": 54, 1040 | "metadata": { 1041 | "collapsed": false 1042 | }, 1043 | "outputs": [ 1044 | { 1045 | "data": { 1046 | "text/plain": [ 1047 | "EPL 2.797368\n", 1048 | "La Liga 2.981579\n", 1049 | "Serie A 2.639474\n", 1050 | "Bundesliga 2.934641\n", 1051 | "dtype: float64" 1052 | ] 1053 | }, 1054 | "execution_count": 54, 1055 | "metadata": {}, 1056 | "output_type": "execute_result" 1057 | } 1058 | ], 1059 | "source": [ 1060 | "totalsDF=grouped3.sum()\n", 1061 | "totalsDF.ix['GoalsScored']/totalsDF.ix['MatchesPlayed']" 1062 | ] 1063 | }, 1064 | { 1065 | "cell_type": "code", 1066 | "execution_count": 55, 1067 | "metadata": { 1068 | "collapsed": false 1069 | }, 1070 | "outputs": [ 1071 | { 1072 | "data": { 1073 | "text/html": [ 1074 | "
\n", 1075 | "\n", 1076 | " \n", 1077 | " \n", 1078 | " \n", 1079 | " \n", 1080 | " \n", 1081 | " \n", 1082 | " \n", 1083 | " \n", 1084 | " \n", 1085 | " \n", 1086 | " \n", 1087 | " \n", 1088 | " \n", 1089 | " \n", 1090 | " \n", 1091 | " \n", 1092 | " \n", 1093 | " \n", 1094 | "
EPLLa LigaSerie ABundesliga
0 2.797368 2.981579 2.639474 2.934641
\n", 1095 | "
" 1096 | ], 1097 | "text/plain": [ 1098 | " EPL La Liga Serie A Bundesliga\n", 1099 | "0 2.797368 2.981579 2.639474 2.934641" 1100 | ] 1101 | }, 1102 | "execution_count": 55, 1103 | "metadata": {}, 1104 | "output_type": "execute_result" 1105 | } 1106 | ], 1107 | "source": [ 1108 | "gpg=totalsDF.ix['GoalsScored']/totalsDF.ix['MatchesPlayed']\n", 1109 | "goalsPerGameDF=pd.DataFrame(gpg).T\n", 1110 | "goalsPerGameDF" 1111 | ] 1112 | }, 1113 | { 1114 | "cell_type": "code", 1115 | "execution_count": 56, 1116 | "metadata": { 1117 | "collapsed": false 1118 | }, 1119 | "outputs": [ 1120 | { 1121 | "data": { 1122 | "text/html": [ 1123 | "
\n", 1124 | "\n", 1125 | " \n", 1126 | " \n", 1127 | " \n", 1128 | " \n", 1129 | " \n", 1130 | " \n", 1131 | " \n", 1132 | " \n", 1133 | " \n", 1134 | " \n", 1135 | " \n", 1136 | " \n", 1137 | " \n", 1138 | " \n", 1139 | " \n", 1140 | " \n", 1141 | " \n", 1142 | " \n", 1143 | "
EPLLa LigaSerie ABundesliga
GoalsPerGame 2.797368 2.981579 2.639474 2.934641
\n", 1144 | "
" 1145 | ], 1146 | "text/plain": [ 1147 | " EPL La Liga Serie A Bundesliga\n", 1148 | "GoalsPerGame 2.797368 2.981579 2.639474 2.934641" 1149 | ] 1150 | }, 1151 | "execution_count": 56, 1152 | "metadata": {}, 1153 | "output_type": "execute_result" 1154 | } 1155 | ], 1156 | "source": [ 1157 | "goalsPerGameDF=goalsPerGameDF.rename(index={0:'GoalsPerGame'}) \n", 1158 | "goalsPerGameDF" 1159 | ] 1160 | }, 1161 | { 1162 | "cell_type": "markdown", 1163 | "metadata": {}, 1164 | "source": [ 1165 | "Format and append goalsPerGameDF to original DataFrame:" 1166 | ] 1167 | }, 1168 | { 1169 | "cell_type": "code", 1170 | "execution_count": 57, 1171 | "metadata": { 1172 | "collapsed": false 1173 | }, 1174 | "outputs": [ 1175 | { 1176 | "data": { 1177 | "text/html": [ 1178 | "
\n", 1179 | "\n", 1180 | " \n", 1181 | " \n", 1182 | " \n", 1183 | " \n", 1184 | " \n", 1185 | " \n", 1186 | " \n", 1187 | " \n", 1188 | " \n", 1189 | " \n", 1190 | " \n", 1191 | " \n", 1192 | " \n", 1193 | " \n", 1194 | " \n", 1195 | " \n", 1196 | " \n", 1197 | " \n", 1198 | " \n", 1199 | " \n", 1200 | " \n", 1201 | " \n", 1202 | " \n", 1203 | " \n", 1204 | " \n", 1205 | " \n", 1206 | " \n", 1207 | " \n", 1208 | " \n", 1209 | " \n", 1210 | " \n", 1211 | " \n", 1212 | "
EPLLa LigaSerie ABundesliga
GoalsScored1063.001133.001003.00898.00
MatchesPlayed 380.00 380.00 380.00306.00
GoalsPerGame 2.80 2.98 2.64 2.93
\n", 1213 | "
" 1214 | ], 1215 | "text/plain": [ 1216 | " EPL La Liga Serie A Bundesliga\n", 1217 | "GoalsScored 1063.00 1133.00 1003.00 898.00\n", 1218 | "MatchesPlayed 380.00 380.00 380.00 306.00\n", 1219 | "GoalsPerGame 2.80 2.98 2.64 2.93" 1220 | ] 1221 | }, 1222 | "execution_count": 57, 1223 | "metadata": {}, 1224 | "output_type": "execute_result" 1225 | } 1226 | ], 1227 | "source": [ 1228 | "pd.options.display.float_format='{:.2f}'.format \n", 1229 | "totalsDF.append(goalsPerGameDF)\n" 1230 | ] 1231 | }, 1232 | { 1233 | "cell_type": "markdown", 1234 | "metadata": {}, 1235 | "source": [ 1236 | "

Using the aggregate method

" 1237 | ] 1238 | }, 1239 | { 1240 | "cell_type": "code", 1241 | "execution_count": 58, 1242 | "metadata": { 1243 | "collapsed": false 1244 | }, 1245 | "outputs": [ 1246 | { 1247 | "data": { 1248 | "text/html": [ 1249 | "
\n", 1250 | "\n", 1251 | " \n", 1252 | " \n", 1253 | " \n", 1254 | " \n", 1255 | " \n", 1256 | " \n", 1257 | " \n", 1258 | " \n", 1259 | " \n", 1260 | " \n", 1261 | " \n", 1262 | " \n", 1263 | " \n", 1264 | " \n", 1265 | " \n", 1266 | " \n", 1267 | " \n", 1268 | " \n", 1269 | " \n", 1270 | " \n", 1271 | " \n", 1272 | " \n", 1273 | " \n", 1274 | " \n", 1275 | " \n", 1276 | " \n", 1277 | " \n", 1278 | " \n", 1279 | " \n", 1280 | " \n", 1281 | " \n", 1282 | " \n", 1283 | "
EPLLa LigaSerie ABundesliga
Stat
GoalsScored 1063 1133 1003 898
MatchesPlayed 380 380 380 306
\n", 1284 | "
" 1285 | ], 1286 | "text/plain": [ 1287 | " EPL La Liga Serie A Bundesliga\n", 1288 | "Stat \n", 1289 | "GoalsScored 1063 1133 1003 898\n", 1290 | "MatchesPlayed 380 380 380 306" 1291 | ] 1292 | }, 1293 | "execution_count": 58, 1294 | "metadata": {}, 1295 | "output_type": "execute_result" 1296 | } 1297 | ], 1298 | "source": [ 1299 | "pd.options.display.float_format=None\n", 1300 | "grouped3.aggregate(np.sum)" 1301 | ] 1302 | }, 1303 | { 1304 | "cell_type": "markdown", 1305 | "metadata": {}, 1306 | "source": [ 1307 | "

Applying multiple functions

" 1308 | ] 1309 | }, 1310 | { 1311 | "cell_type": "markdown", 1312 | "metadata": {}, 1313 | "source": [ 1314 | "Specify list of functions to be applied to each column:" 1315 | ] 1316 | }, 1317 | { 1318 | "cell_type": "code", 1319 | "execution_count": 60, 1320 | "metadata": { 1321 | "collapsed": false 1322 | }, 1323 | "outputs": [ 1324 | { 1325 | "data": { 1326 | "text/html": [ 1327 | "
\n", 1328 | "\n", 1329 | " \n", 1330 | " \n", 1331 | " \n", 1332 | " \n", 1333 | " \n", 1334 | " \n", 1335 | " \n", 1336 | " \n", 1337 | " \n", 1338 | " \n", 1339 | " \n", 1340 | " \n", 1341 | " \n", 1342 | " \n", 1343 | " \n", 1344 | " \n", 1345 | " \n", 1346 | " \n", 1347 | " \n", 1348 | " \n", 1349 | " \n", 1350 | " \n", 1351 | " \n", 1352 | " \n", 1353 | " \n", 1354 | " \n", 1355 | " \n", 1356 | " \n", 1357 | " \n", 1358 | " \n", 1359 | " \n", 1360 | " \n", 1361 | " \n", 1362 | " \n", 1363 | " \n", 1364 | " \n", 1365 | " \n", 1366 | " \n", 1367 | " \n", 1368 | " \n", 1369 | " \n", 1370 | " \n", 1371 | " \n", 1372 | " \n", 1373 | " \n", 1374 | " \n", 1375 | " \n", 1376 | " \n", 1377 | " \n", 1378 | " \n", 1379 | " \n", 1380 | " \n", 1381 | " \n", 1382 | " \n", 1383 | " \n", 1384 | " \n", 1385 | " \n", 1386 | " \n", 1387 | " \n", 1388 | " \n", 1389 | " \n", 1390 | " \n", 1391 | " \n", 1392 | " \n", 1393 | " \n", 1394 | " \n", 1395 | " \n", 1396 | " \n", 1397 | " \n", 1398 | " \n", 1399 | " \n", 1400 | "
EPLLa LigaSerie ABundesliga
summeansizesummeansizesummeansizesummeansize
Stat
GoalsScored 1063 106.3 11 1133 103.000000 11 1003 100.3 11 898 89.8 11
MatchesPlayed 380 38.0 11 380 34.545455 11 380 38.0 11 306 30.6 11
\n", 1401 | "
" 1402 | ], 1403 | "text/plain": [ 1404 | " EPL La Liga Serie A \\\n", 1405 | " sum mean size sum mean size sum mean \n", 1406 | "Stat \n", 1407 | "GoalsScored 1063 106.3 11 1133 103.000000 11 1003 100.3 \n", 1408 | "MatchesPlayed 380 38.0 11 380 34.545455 11 380 38.0 \n", 1409 | "\n", 1410 | " Bundesliga \n", 1411 | " size sum mean size \n", 1412 | "Stat \n", 1413 | "GoalsScored 11 898 89.8 11 \n", 1414 | "MatchesPlayed 11 306 30.6 11 " 1415 | ] 1416 | }, 1417 | "execution_count": 60, 1418 | "metadata": {}, 1419 | "output_type": "execute_result" 1420 | } 1421 | ], 1422 | "source": [ 1423 | "grouped3.aggregate([np.sum, np.mean,np.size])" 1424 | ] 1425 | }, 1426 | { 1427 | "cell_type": "markdown", 1428 | "metadata": {}, 1429 | "source": [ 1430 | "Grouped Series" 1431 | ] 1432 | }, 1433 | { 1434 | "cell_type": "code", 1435 | "execution_count": 61, 1436 | "metadata": { 1437 | "collapsed": false 1438 | }, 1439 | "outputs": [ 1440 | { 1441 | "data": { 1442 | "text/html": [ 1443 | "
\n", 1444 | "\n", 1445 | " \n", 1446 | " \n", 1447 | " \n", 1448 | " \n", 1449 | " \n", 1450 | " \n", 1451 | " \n", 1452 | " \n", 1453 | " \n", 1454 | " \n", 1455 | " \n", 1456 | " \n", 1457 | " \n", 1458 | " \n", 1459 | " \n", 1460 | " \n", 1461 | " \n", 1462 | " \n", 1463 | " \n", 1464 | " \n", 1465 | " \n", 1466 | " \n", 1467 | " \n", 1468 | " \n", 1469 | " \n", 1470 | " \n", 1471 | " \n", 1472 | " \n", 1473 | " \n", 1474 | " \n", 1475 | " \n", 1476 | " \n", 1477 | " \n", 1478 | " \n", 1479 | " \n", 1480 | " \n", 1481 | " \n", 1482 | " \n", 1483 | " \n", 1484 | " \n", 1485 | " \n", 1486 | " \n", 1487 | " \n", 1488 | " \n", 1489 | " \n", 1490 | " \n", 1491 | " \n", 1492 | " \n", 1493 | " \n", 1494 | " \n", 1495 | " \n", 1496 | " \n", 1497 | " \n", 1498 | " \n", 1499 | " \n", 1500 | " \n", 1501 | " \n", 1502 | " \n", 1503 | " \n", 1504 | " \n", 1505 | " \n", 1506 | " \n", 1507 | " \n", 1508 | " \n", 1509 | " \n", 1510 | " \n", 1511 | " \n", 1512 | " \n", 1513 | " \n", 1514 | " \n", 1515 | " \n", 1516 | " \n", 1517 | " \n", 1518 | " \n", 1519 | " \n", 1520 | " \n", 1521 | "
DeviationAverageTotal
Nation
England 17091.309877 66534.250000 798411
France NaN 64400.000000 64400
Germany 13783.830076 67583.285714 473083
Italy 17443.516494 65761.250000 789135
Netherlands 16048.580972 67489.000000 404934
Portugal 15632.863259 49635.500000 198542
Romania NaN 70000.000000 70000
Scotland NaN 45000.000000 45000
Spain 27457.531064 73477.153846 955203
Yugoslavia NaN 56000.000000 56000
\n", 1522 | "
" 1523 | ], 1524 | "text/plain": [ 1525 | " Deviation Average Total\n", 1526 | "Nation \n", 1527 | "England 17091.309877 66534.250000 798411\n", 1528 | "France NaN 64400.000000 64400\n", 1529 | "Germany 13783.830076 67583.285714 473083\n", 1530 | "Italy 17443.516494 65761.250000 789135\n", 1531 | "Netherlands 16048.580972 67489.000000 404934\n", 1532 | "Portugal 15632.863259 49635.500000 198542\n", 1533 | "Romania NaN 70000.000000 70000\n", 1534 | "Scotland NaN 45000.000000 45000\n", 1535 | "Spain 27457.531064 73477.153846 955203\n", 1536 | "Yugoslavia NaN 56000.000000 56000" 1537 | ] 1538 | }, 1539 | "execution_count": 61, 1540 | "metadata": {}, 1541 | "output_type": "execute_result" 1542 | } 1543 | ], 1544 | "source": [ 1545 | "nationsGrp['Attendance'].agg({'Total':np.sum, 'Average':np.mean, 'Deviation':np.std})" 1546 | ] 1547 | }, 1548 | { 1549 | "cell_type": "markdown", 1550 | "metadata": {}, 1551 | "source": [ 1552 | "

The transform( ) method

" 1553 | ] 1554 | }, 1555 | { 1556 | "cell_type": "code", 1557 | "execution_count": 72, 1558 | "metadata": { 1559 | "collapsed": false 1560 | }, 1561 | "outputs": [ 1562 | { 1563 | "data": { 1564 | "text/html": [ 1565 | "
\n", 1566 | "\n", 1567 | " \n", 1568 | " \n", 1569 | " \n", 1570 | " \n", 1571 | " \n", 1572 | " \n", 1573 | " \n", 1574 | " \n", 1575 | " \n", 1576 | " \n", 1577 | " \n", 1578 | " \n", 1579 | " \n", 1580 | " \n", 1581 | " \n", 1582 | " \n", 1583 | " \n", 1584 | " \n", 1585 | " \n", 1586 | " \n", 1587 | " \n", 1588 | " \n", 1589 | " \n", 1590 | " \n", 1591 | " \n", 1592 | " \n", 1593 | " \n", 1594 | " \n", 1595 | " \n", 1596 | " \n", 1597 | " \n", 1598 | " \n", 1599 | " \n", 1600 | " \n", 1601 | " \n", 1602 | " \n", 1603 | " \n", 1604 | " \n", 1605 | " \n", 1606 | " \n", 1607 | " \n", 1608 | " \n", 1609 | " \n", 1610 | " \n", 1611 | " \n", 1612 | " \n", 1613 | " \n", 1614 | " \n", 1615 | " \n", 1616 | " \n", 1617 | " \n", 1618 | " \n", 1619 | " \n", 1620 | " \n", 1621 | " \n", 1622 | " \n", 1623 | " \n", 1624 | " \n", 1625 | " \n", 1626 | " \n", 1627 | " \n", 1628 | " \n", 1629 | " \n", 1630 | " \n", 1631 | " \n", 1632 | " \n", 1633 | " \n", 1634 | " \n", 1635 | " \n", 1636 | " \n", 1637 | " \n", 1638 | " \n", 1639 | " \n", 1640 | " \n", 1641 | " \n", 1642 | " \n", 1643 | " \n", 1644 | " \n", 1645 | " \n", 1646 | " \n", 1647 | " \n", 1648 | " \n", 1649 | " \n", 1650 | " \n", 1651 | " \n", 1652 | " \n", 1653 | " \n", 1654 | " \n", 1655 | " \n", 1656 | " \n", 1657 | " \n", 1658 | " \n", 1659 | " \n", 1660 | " \n", 1661 | " \n", 1662 | " \n", 1663 | " \n", 1664 | " \n", 1665 | " \n", 1666 | " \n", 1667 | " \n", 1668 | " \n", 1669 | " \n", 1670 | " \n", 1671 | " \n", 1672 | " \n", 1673 | " \n", 1674 | " \n", 1675 | " \n", 1676 | " \n", 1677 | " \n", 1678 | " \n", 1679 | " \n", 1680 | " \n", 1681 | " \n", 1682 | " \n", 1683 | " \n", 1684 | " \n", 1685 | " \n", 1686 | " \n", 1687 | " \n", 1688 | " \n", 1689 | " \n", 1690 | " \n", 1691 | " \n", 1692 | " \n", 1693 | " \n", 1694 | " \n", 1695 | " \n", 1696 | " \n", 1697 | " \n", 1698 | " \n", 1699 | " \n", 1700 | " \n", 1701 | " \n", 1702 | " \n", 1703 | " \n", 1704 | " \n", 1705 | " \n", 1706 | " \n", 1707 | " \n", 1708 | " \n", 1709 | " \n", 1710 | " \n", 1711 | " \n", 1712 | " \n", 1713 | " \n", 1714 | " \n", 1715 | " \n", 1716 | " \n", 1717 | " \n", 1718 | " \n", 1719 | " \n", 1720 | " \n", 1721 | " \n", 1722 | " \n", 1723 | " \n", 1724 | " \n", 1725 | " \n", 1726 | " \n", 1727 | " \n", 1728 | " \n", 1729 | " \n", 1730 | " \n", 1731 | " \n", 1732 | " \n", 1733 | " \n", 1734 | " \n", 1735 | " \n", 1736 | " \n", 1737 | " \n", 1738 | " \n", 1739 | " \n", 1740 | " \n", 1741 | " \n", 1742 | " \n", 1743 | " \n", 1744 | " \n", 1745 | " \n", 1746 | " \n", 1747 | " \n", 1748 | " \n", 1749 | " \n", 1750 | " \n", 1751 | " \n", 1752 | " \n", 1753 | " \n", 1754 | " \n", 1755 | " \n", 1756 | " \n", 1757 | " \n", 1758 | " \n", 1759 | " \n", 1760 | " \n", 1761 | " \n", 1762 | " \n", 1763 | " \n", 1764 | " \n", 1765 | " \n", 1766 | " \n", 1767 | " \n", 1768 | " \n", 1769 | " \n", 1770 | " \n", 1771 | " \n", 1772 | " \n", 1773 | " \n", 1774 | " \n", 1775 | " \n", 1776 | " \n", 1777 | " \n", 1778 | " \n", 1779 | " \n", 1780 | " \n", 1781 | " \n", 1782 | " \n", 1783 | " \n", 1784 | " \n", 1785 | " \n", 1786 | " \n", 1787 | " \n", 1788 | " \n", 1789 | " \n", 1790 | " \n", 1791 | " \n", 1792 | " \n", 1793 | " \n", 1794 | " \n", 1795 | " \n", 1796 | " \n", 1797 | " \n", 1798 | " \n", 1799 | " \n", 1800 | " \n", 1801 | " \n", 1802 | " \n", 1803 | " \n", 1804 | " \n", 1805 | " \n", 1806 | " \n", 1807 | " \n", 1808 | " \n", 1809 | " \n", 1810 | " \n", 1811 | "
level_0indexEPLLa LigaSerie ABundesliga
MonthStat
08/01/2012MatchesPlayed 0 0 20 20 10 10
09/01/2012MatchesPlayed 1 1 38 39 50 44
10/01/2012MatchesPlayed 2 2 31 31 39 27
11/01/2012MatchesPlayed 3 3 50 41 42 46
12/01/2012MatchesPlayed 4 4 59 39 39 26
01/01/2013MatchesPlayed 5 5 42 40 40 18
02/01/2013MatchesPlayed 6 6 30 40 40 36
03/01/2013MatchesPlayed 7 7 35 38 39 36
04/01/2013MatchesPlayed 8 8 42 42 41 36
05/01/2013MatchesPlayed 9 9 33 40 40 27
06/02/2013MatchesPlayed 10 10 NaN 10 NaN NaN
08/01/2012GoalsScored 11 11 57 60 21 23
09/01/2012GoalsScored 12 12 111 112 133 135
10/01/2012GoalsScored 13 13 95 88 97 77
11/01/2012GoalsScored 14 14 121 116 120 137
12/01/2012GoalsScored 15 15 183 109 125 72
01/01/2013GoalsScored 16 16 117 121 104 51
02/01/2013GoalsScored 17 17 87 110 100 101
03/01/2013GoalsScored 18 18 91 101 99 106
04/01/2013GoalsScored 19 19 105 127 102 104
05/01/2013GoalsScored 20 20 96 109 102 92
06/01/2013GoalsScored 21 21 NaN 80 NaN NaN
\n", 1812 | "
" 1813 | ], 1814 | "text/plain": [ 1815 | " level_0 index EPL La Liga Serie A Bundesliga\n", 1816 | "Month Stat \n", 1817 | "08/01/2012 MatchesPlayed 0 0 20 20 10 10\n", 1818 | "09/01/2012 MatchesPlayed 1 1 38 39 50 44\n", 1819 | "10/01/2012 MatchesPlayed 2 2 31 31 39 27\n", 1820 | "11/01/2012 MatchesPlayed 3 3 50 41 42 46\n", 1821 | "12/01/2012 MatchesPlayed 4 4 59 39 39 26\n", 1822 | "01/01/2013 MatchesPlayed 5 5 42 40 40 18\n", 1823 | "02/01/2013 MatchesPlayed 6 6 30 40 40 36\n", 1824 | "03/01/2013 MatchesPlayed 7 7 35 38 39 36\n", 1825 | "04/01/2013 MatchesPlayed 8 8 42 42 41 36\n", 1826 | "05/01/2013 MatchesPlayed 9 9 33 40 40 27\n", 1827 | "06/02/2013 MatchesPlayed 10 10 NaN 10 NaN NaN\n", 1828 | "08/01/2012 GoalsScored 11 11 57 60 21 23\n", 1829 | "09/01/2012 GoalsScored 12 12 111 112 133 135\n", 1830 | "10/01/2012 GoalsScored 13 13 95 88 97 77\n", 1831 | "11/01/2012 GoalsScored 14 14 121 116 120 137\n", 1832 | "12/01/2012 GoalsScored 15 15 183 109 125 72\n", 1833 | "01/01/2013 GoalsScored 16 16 117 121 104 51\n", 1834 | "02/01/2013 GoalsScored 17 17 87 110 100 101\n", 1835 | "03/01/2013 GoalsScored 18 18 91 101 99 106\n", 1836 | "04/01/2013 GoalsScored 19 19 105 127 102 104\n", 1837 | "05/01/2013 GoalsScored 20 20 96 109 102 92\n", 1838 | "06/01/2013 GoalsScored 21 21 NaN 80 NaN NaN" 1839 | ] 1840 | }, 1841 | "execution_count": 72, 1842 | "metadata": {}, 1843 | "output_type": "execute_result" 1844 | } 1845 | ], 1846 | "source": [ 1847 | "goalStatsDF" 1848 | ] 1849 | }, 1850 | { 1851 | "cell_type": "markdown", 1852 | "metadata": {}, 1853 | "source": [ 1854 | "DataFrame of goals scored across 4 Euro leagues 2012-2013" 1855 | ] 1856 | }, 1857 | { 1858 | "cell_type": "code", 1859 | "execution_count": 139, 1860 | "metadata": { 1861 | "collapsed": false 1862 | }, 1863 | "outputs": [ 1864 | { 1865 | "data": { 1866 | "text/html": [ 1867 | "
\n", 1868 | "\n", 1869 | " \n", 1870 | " \n", 1871 | " \n", 1872 | " \n", 1873 | " \n", 1874 | " \n", 1875 | " \n", 1876 | " \n", 1877 | " \n", 1878 | " \n", 1879 | " \n", 1880 | " \n", 1881 | " \n", 1882 | " \n", 1883 | " \n", 1884 | " \n", 1885 | " \n", 1886 | " \n", 1887 | " \n", 1888 | " \n", 1889 | " \n", 1890 | " \n", 1891 | " \n", 1892 | " \n", 1893 | " \n", 1894 | " \n", 1895 | " \n", 1896 | " \n", 1897 | " \n", 1898 | " \n", 1899 | " \n", 1900 | " \n", 1901 | " \n", 1902 | " \n", 1903 | " \n", 1904 | " \n", 1905 | " \n", 1906 | " \n", 1907 | " \n", 1908 | " \n", 1909 | " \n", 1910 | " \n", 1911 | " \n", 1912 | " \n", 1913 | " \n", 1914 | " \n", 1915 | " \n", 1916 | " \n", 1917 | " \n", 1918 | " \n", 1919 | " \n", 1920 | " \n", 1921 | " \n", 1922 | " \n", 1923 | " \n", 1924 | " \n", 1925 | " \n", 1926 | " \n", 1927 | " \n", 1928 | " \n", 1929 | " \n", 1930 | " \n", 1931 | " \n", 1932 | " \n", 1933 | " \n", 1934 | " \n", 1935 | " \n", 1936 | " \n", 1937 | " \n", 1938 | " \n", 1939 | " \n", 1940 | " \n", 1941 | " \n", 1942 | " \n", 1943 | " \n", 1944 | " \n", 1945 | " \n", 1946 | " \n", 1947 | " \n", 1948 | " \n", 1949 | " \n", 1950 | " \n", 1951 | " \n", 1952 | " \n", 1953 | " \n", 1954 | " \n", 1955 | " \n", 1956 | " \n", 1957 | " \n", 1958 | " \n", 1959 | " \n", 1960 | " \n", 1961 | " \n", 1962 | " \n", 1963 | " \n", 1964 | "
EPLLa LigaSerie ABundesliga
Month
08/01/2012 57 60 21 23
09/01/2012 111 112 133 135
10/01/2012 95 88 97 77
11/01/2012 121 116 120 137
12/01/2012 183 109 125 72
01/01/2013 117 121 104 51
02/01/2013 87 110 100 101
03/01/2013 91 101 99 106
04/01/2013 105 127 102 104
05/01/2013 96 109 102 92
06/01/2013 NaN 80 NaN NaN
\n", 1965 | "
" 1966 | ], 1967 | "text/plain": [ 1968 | " EPL La Liga Serie A Bundesliga\n", 1969 | "Month \n", 1970 | "08/01/2012 57 60 21 23\n", 1971 | "09/01/2012 111 112 133 135\n", 1972 | "10/01/2012 95 88 97 77\n", 1973 | "11/01/2012 121 116 120 137\n", 1974 | "12/01/2012 183 109 125 72\n", 1975 | "01/01/2013 117 121 104 51\n", 1976 | "02/01/2013 87 110 100 101\n", 1977 | "03/01/2013 91 101 99 106\n", 1978 | "04/01/2013 105 127 102 104\n", 1979 | "05/01/2013 96 109 102 92\n", 1980 | "06/01/2013 NaN 80 NaN NaN" 1981 | ] 1982 | }, 1983 | "execution_count": 139, 1984 | "metadata": {}, 1985 | "output_type": "execute_result" 1986 | } 1987 | ], 1988 | "source": [ 1989 | "goalStatsDF2=pd.read_csv('./data/goal_stats_euro_leagues_2012-13.csv')\n", 1990 | "goalStatsDF2=goalStatsDF2.set_index(['Month'])\n", 1991 | "goalsScoredDF=goalStatsDF2.ix[goalStatsDF2['Stat']=='GoalsScored']\n", 1992 | "\n", 1993 | "goalsScoredDF.iloc[:,1:]" 1994 | ] 1995 | }, 1996 | { 1997 | "cell_type": "markdown", 1998 | "metadata": {}, 1999 | "source": [ 2000 | "Find mean of goals scored for each league, grouped by year:" 2001 | ] 2002 | }, 2003 | { 2004 | "cell_type": "code", 2005 | "execution_count": 117, 2006 | "metadata": { 2007 | "collapsed": false 2008 | }, 2009 | "outputs": [ 2010 | { 2011 | "data": { 2012 | "text/html": [ 2013 | "
\n", 2014 | "\n", 2015 | " \n", 2016 | " \n", 2017 | " \n", 2018 | " \n", 2019 | " \n", 2020 | " \n", 2021 | " \n", 2022 | " \n", 2023 | " \n", 2024 | " \n", 2025 | " \n", 2026 | " \n", 2027 | " \n", 2028 | " \n", 2029 | " \n", 2030 | " \n", 2031 | " \n", 2032 | " \n", 2033 | " \n", 2034 | " \n", 2035 | " \n", 2036 | " \n", 2037 | " \n", 2038 | " \n", 2039 | " \n", 2040 | "
EPLLa LigaSerie ABundesliga
2012 113.4 97 99.2 88.8
2013 99.2 108 101.4 90.8
\n", 2041 | "
" 2042 | ], 2043 | "text/plain": [ 2044 | " EPL La Liga Serie A Bundesliga\n", 2045 | "2012 113.4 97 99.2 88.8\n", 2046 | "2013 99.2 108 101.4 90.8" 2047 | ] 2048 | }, 2049 | "execution_count": 117, 2050 | "metadata": {}, 2051 | "output_type": "execute_result" 2052 | } 2053 | ], 2054 | "source": [ 2055 | "goalsScoredPerYearGrp=goalsScoredDF.groupby(lambda Month: Month.split('/')[2])\n", 2056 | "goalsScoredPerYearGrp.mean()" 2057 | ] 2058 | }, 2059 | { 2060 | "cell_type": "markdown", 2061 | "metadata": {}, 2062 | "source": [ 2063 | "Count of months of football for each year" 2064 | ] 2065 | }, 2066 | { 2067 | "cell_type": "code", 2068 | "execution_count": 118, 2069 | "metadata": { 2070 | "collapsed": false 2071 | }, 2072 | "outputs": [ 2073 | { 2074 | "data": { 2075 | "text/html": [ 2076 | "
\n", 2077 | "\n", 2078 | " \n", 2079 | " \n", 2080 | " \n", 2081 | " \n", 2082 | " \n", 2083 | " \n", 2084 | " \n", 2085 | " \n", 2086 | " \n", 2087 | " \n", 2088 | " \n", 2089 | " \n", 2090 | " \n", 2091 | " \n", 2092 | " \n", 2093 | " \n", 2094 | " \n", 2095 | " \n", 2096 | " \n", 2097 | " \n", 2098 | " \n", 2099 | " \n", 2100 | " \n", 2101 | " \n", 2102 | " \n", 2103 | "
EPLLa LigaSerie ABundesliga
2012 5 5 5 5
2013 5 6 5 5
\n", 2104 | "
" 2105 | ], 2106 | "text/plain": [ 2107 | " EPL La Liga Serie A Bundesliga\n", 2108 | "2012 5 5 5 5\n", 2109 | "2013 5 6 5 5" 2110 | ] 2111 | }, 2112 | "execution_count": 118, 2113 | "metadata": {}, 2114 | "output_type": "execute_result" 2115 | } 2116 | ], 2117 | "source": [ 2118 | "goalsScoredPerYearGrp.count()\n" 2119 | ] 2120 | }, 2121 | { 2122 | "cell_type": "markdown", 2123 | "metadata": {}, 2124 | "source": [ 2125 | "Define fill function and fill in missing values" 2126 | ] 2127 | }, 2128 | { 2129 | "cell_type": "code", 2130 | "execution_count": 119, 2131 | "metadata": { 2132 | "collapsed": false 2133 | }, 2134 | "outputs": [ 2135 | { 2136 | "data": { 2137 | "text/html": [ 2138 | "
\n", 2139 | "\n", 2140 | " \n", 2141 | " \n", 2142 | " \n", 2143 | " \n", 2144 | " \n", 2145 | " \n", 2146 | " \n", 2147 | " \n", 2148 | " \n", 2149 | " \n", 2150 | " \n", 2151 | " \n", 2152 | " \n", 2153 | " \n", 2154 | " \n", 2155 | " \n", 2156 | " \n", 2157 | " \n", 2158 | " \n", 2159 | " \n", 2160 | " \n", 2161 | " \n", 2162 | " \n", 2163 | " \n", 2164 | " \n", 2165 | "
EPLLa LigaSerie ABundesliga
2012 113.4 97 99.2 88.8
2013 99.2 108 101.4 90.8
\n", 2166 | "
" 2167 | ], 2168 | "text/plain": [ 2169 | " EPL La Liga Serie A Bundesliga\n", 2170 | "2012 113.4 97 99.2 88.8\n", 2171 | "2013 99.2 108 101.4 90.8" 2172 | ] 2173 | }, 2174 | "execution_count": 119, 2175 | "metadata": {}, 2176 | "output_type": "execute_result" 2177 | } 2178 | ], 2179 | "source": [ 2180 | "fill_fcn = lambda x: x.fillna(x.mean())\n", 2181 | "trans = goalsScoredPerYearGrp.transform(fill_fcn)\n", 2182 | "tGroupedStats = trans.groupby(lambda Month: Month.split('/')[2])\n", 2183 | "tGroupedStats.mean() \n" 2184 | ] 2185 | }, 2186 | { 2187 | "cell_type": "markdown", 2188 | "metadata": {}, 2189 | "source": [ 2190 | "Display count on filled in data:" 2191 | ] 2192 | }, 2193 | { 2194 | "cell_type": "code", 2195 | "execution_count": 120, 2196 | "metadata": { 2197 | "collapsed": false 2198 | }, 2199 | "outputs": [ 2200 | { 2201 | "data": { 2202 | "text/html": [ 2203 | "
\n", 2204 | "\n", 2205 | " \n", 2206 | " \n", 2207 | " \n", 2208 | " \n", 2209 | " \n", 2210 | " \n", 2211 | " \n", 2212 | " \n", 2213 | " \n", 2214 | " \n", 2215 | " \n", 2216 | " \n", 2217 | " \n", 2218 | " \n", 2219 | " \n", 2220 | " \n", 2221 | " \n", 2222 | " \n", 2223 | " \n", 2224 | " \n", 2225 | " \n", 2226 | " \n", 2227 | " \n", 2228 | " \n", 2229 | " \n", 2230 | "
EPLLa LigaSerie ABundesliga
2012 5 5 5 5
2013 6 6 6 6
\n", 2231 | "
" 2232 | ], 2233 | "text/plain": [ 2234 | " EPL La Liga Serie A Bundesliga\n", 2235 | "2012 5 5 5 5\n", 2236 | "2013 6 6 6 6" 2237 | ] 2238 | }, 2239 | "execution_count": 120, 2240 | "metadata": {}, 2241 | "output_type": "execute_result" 2242 | } 2243 | ], 2244 | "source": [ 2245 | "tGroupedStats.count()" 2246 | ] 2247 | }, 2248 | { 2249 | "cell_type": "markdown", 2250 | "metadata": {}, 2251 | "source": [ 2252 | "

Filtering

" 2253 | ] 2254 | }, 2255 | { 2256 | "cell_type": "markdown", 2257 | "metadata": {}, 2258 | "source": [ 2259 | "Display which months of the season had more than 100 goals scored in each of the 4 leagues " 2260 | ] 2261 | }, 2262 | { 2263 | "cell_type": "code", 2264 | "execution_count": 143, 2265 | "metadata": { 2266 | "collapsed": false 2267 | }, 2268 | "outputs": [ 2269 | { 2270 | "data": { 2271 | "text/html": [ 2272 | "
\n", 2273 | "\n", 2274 | " \n", 2275 | " \n", 2276 | " \n", 2277 | " \n", 2278 | " \n", 2279 | " \n", 2280 | " \n", 2281 | " \n", 2282 | " \n", 2283 | " \n", 2284 | " \n", 2285 | " \n", 2286 | " \n", 2287 | " \n", 2288 | " \n", 2289 | " \n", 2290 | " \n", 2291 | " \n", 2292 | " \n", 2293 | " \n", 2294 | " \n", 2295 | " \n", 2296 | " \n", 2297 | " \n", 2298 | " \n", 2299 | " \n", 2300 | " \n", 2301 | " \n", 2302 | " \n", 2303 | " \n", 2304 | " \n", 2305 | " \n", 2306 | " \n", 2307 | " \n", 2308 | " \n", 2309 | " \n", 2310 | " \n", 2311 | " \n", 2312 | " \n", 2313 | " \n", 2314 | " \n", 2315 | " \n", 2316 | " \n", 2317 | " \n", 2318 | " \n", 2319 | " \n", 2320 | " \n", 2321 | " \n", 2322 | " \n", 2323 | " \n", 2324 | " \n", 2325 | " \n", 2326 | " \n", 2327 | " \n", 2328 | " \n", 2329 | " \n", 2330 | " \n", 2331 | " \n", 2332 | " \n", 2333 | " \n", 2334 | " \n", 2335 | " \n", 2336 | " \n", 2337 | " \n", 2338 | " \n", 2339 | " \n", 2340 | " \n", 2341 | " \n", 2342 | " \n", 2343 | " \n", 2344 | " \n", 2345 | " \n", 2346 | " \n", 2347 | " \n", 2348 | " \n", 2349 | " \n", 2350 | " \n", 2351 | " \n", 2352 | " \n", 2353 | " \n", 2354 | " \n", 2355 | " \n", 2356 | " \n", 2357 | " \n", 2358 | " \n", 2359 | " \n", 2360 | " \n", 2361 | " \n", 2362 | " \n", 2363 | " \n", 2364 | " \n", 2365 | " \n", 2366 | " \n", 2367 | " \n", 2368 | " \n", 2369 | " \n", 2370 | " \n", 2371 | " \n", 2372 | " \n", 2373 | " \n", 2374 | " \n", 2375 | " \n", 2376 | " \n", 2377 | " \n", 2378 | " \n", 2379 | " \n", 2380 | " \n", 2381 | " \n", 2382 | "
StatEPLLa LigaSerie ABundesliga
Month
08/01/2012 GoalsScored 57 60 21 23
09/01/2012 GoalsScored 111 112 133 135
10/01/2012 GoalsScored 95 88 97 77
11/01/2012 GoalsScored 121 116 120 137
12/01/2012 GoalsScored 183 109 125 72
01/01/2013 GoalsScored 117 121 104 51
02/01/2013 GoalsScored 87 110 100 101
03/01/2013 GoalsScored 91 101 99 106
04/01/2013 GoalsScored 105 127 102 104
05/01/2013 GoalsScored 96 109 102 92
06/01/2013 GoalsScored NaN 80 NaN NaN
\n", 2383 | "
" 2384 | ], 2385 | "text/plain": [ 2386 | " Stat EPL La Liga Serie A Bundesliga\n", 2387 | "Month \n", 2388 | "08/01/2012 GoalsScored 57 60 21 23\n", 2389 | "09/01/2012 GoalsScored 111 112 133 135\n", 2390 | "10/01/2012 GoalsScored 95 88 97 77\n", 2391 | "11/01/2012 GoalsScored 121 116 120 137\n", 2392 | "12/01/2012 GoalsScored 183 109 125 72\n", 2393 | "01/01/2013 GoalsScored 117 121 104 51\n", 2394 | "02/01/2013 GoalsScored 87 110 100 101\n", 2395 | "03/01/2013 GoalsScored 91 101 99 106\n", 2396 | "04/01/2013 GoalsScored 105 127 102 104\n", 2397 | "05/01/2013 GoalsScored 96 109 102 92\n", 2398 | "06/01/2013 GoalsScored NaN 80 NaN NaN" 2399 | ] 2400 | }, 2401 | "execution_count": 143, 2402 | "metadata": {}, 2403 | "output_type": "execute_result" 2404 | } 2405 | ], 2406 | "source": [ 2407 | "#goalsScoredDF=goalsScoredDF.iloc[:,1:]\n", 2408 | "goalsScoredDF" 2409 | ] 2410 | }, 2411 | { 2412 | "cell_type": "code", 2413 | "execution_count": 144, 2414 | "metadata": { 2415 | "collapsed": false 2416 | }, 2417 | "outputs": [ 2418 | { 2419 | "data": { 2420 | "text/html": [ 2421 | "
\n", 2422 | "\n", 2423 | " \n", 2424 | " \n", 2425 | " \n", 2426 | " \n", 2427 | " \n", 2428 | " \n", 2429 | " \n", 2430 | " \n", 2431 | " \n", 2432 | " \n", 2433 | " \n", 2434 | " \n", 2435 | " \n", 2436 | " \n", 2437 | " \n", 2438 | " \n", 2439 | " \n", 2440 | " \n", 2441 | " \n", 2442 | " \n", 2443 | " \n", 2444 | " \n", 2445 | " \n", 2446 | " \n", 2447 | " \n", 2448 | " \n", 2449 | " \n", 2450 | " \n", 2451 | " \n", 2452 | " \n", 2453 | " \n", 2454 | " \n", 2455 | " \n", 2456 | " \n", 2457 | " \n", 2458 | " \n", 2459 | " \n", 2460 | " \n", 2461 | " \n", 2462 | " \n", 2463 | " \n", 2464 | " \n", 2465 | " \n", 2466 | " \n", 2467 | "
StatEPLLa LigaSerie ABundesliga
Month
09/01/2012 GoalsScored 111 112 133 135
11/01/2012 GoalsScored 121 116 120 137
04/01/2013 GoalsScored 105 127 102 104
\n", 2468 | "
" 2469 | ], 2470 | "text/plain": [ 2471 | " Stat EPL La Liga Serie A Bundesliga\n", 2472 | "Month \n", 2473 | "09/01/2012 GoalsScored 111 112 133 135\n", 2474 | "11/01/2012 GoalsScored 121 116 120 137\n", 2475 | "04/01/2013 GoalsScored 105 127 102 104" 2476 | ] 2477 | }, 2478 | "execution_count": 144, 2479 | "metadata": {}, 2480 | "output_type": "execute_result" 2481 | } 2482 | ], 2483 | "source": [ 2484 | "goalsScoredDF.groupby(level='Month').filter(lambda x: \n", 2485 | " np.all([x[col] > 100 for col in goalsScoredDF.columns]))" 2486 | ] 2487 | }, 2488 | { 2489 | "cell_type": "markdown", 2490 | "metadata": {}, 2491 | "source": [ 2492 | "

Merging and Joining

\n" 2493 | ] 2494 | }, 2495 | { 2496 | "cell_type": "code", 2497 | "execution_count": 145, 2498 | "metadata": { 2499 | "collapsed": false 2500 | }, 2501 | "outputs": [ 2502 | { 2503 | "data": { 2504 | "text/html": [ 2505 | "
\n", 2506 | "\n", 2507 | " \n", 2508 | " \n", 2509 | " \n", 2510 | " \n", 2511 | " \n", 2512 | " \n", 2513 | " \n", 2514 | " \n", 2515 | " \n", 2516 | " \n", 2517 | " \n", 2518 | " \n", 2519 | " \n", 2520 | " \n", 2521 | " \n", 2522 | " \n", 2523 | " \n", 2524 | " \n", 2525 | " \n", 2526 | " \n", 2527 | " \n", 2528 | " \n", 2529 | " \n", 2530 | " \n", 2531 | " \n", 2532 | " \n", 2533 | " \n", 2534 | " \n", 2535 | " \n", 2536 | " \n", 2537 | " \n", 2538 | " \n", 2539 | " \n", 2540 | " \n", 2541 | " \n", 2542 | " \n", 2543 | " \n", 2544 | " \n", 2545 | " \n", 2546 | " \n", 2547 | " \n", 2548 | " \n", 2549 | " \n", 2550 | " \n", 2551 | " \n", 2552 | " \n", 2553 | " \n", 2554 | " \n", 2555 | " \n", 2556 | " \n", 2557 | " \n", 2558 | " \n", 2559 | " \n", 2560 | " \n", 2561 | " \n", 2562 | " \n", 2563 | " \n", 2564 | " \n", 2565 | " \n", 2566 | " \n", 2567 | " \n", 2568 | " \n", 2569 | " \n", 2570 | " \n", 2571 | " \n", 2572 | " \n", 2573 | " \n", 2574 | " \n", 2575 | " \n", 2576 | " \n", 2577 | " \n", 2578 | " \n", 2579 | " \n", 2580 | " \n", 2581 | " \n", 2582 | " \n", 2583 | "
Closing priceEPSShares Outstanding(M)BetaP/EMarket Cap(B)
Symbol
AMZN 346.15 0.59 459.00 0.52 589.80 158.88
GOOG 1133.43 36.05 335.83 0.87 31.44 380.64
FB 61.48 0.59 2450.00 NaN 104.93 150.92
YHOO 34.90 1.27 1010.00 27.48 0.66 35.36
TWTR 65.25 -0.30 555.20 NaN NaN 36.23
AAPL 501.53 40.32 892.45 12.44 447.59 0.84
\n", 2584 | "
" 2585 | ], 2586 | "text/plain": [ 2587 | " Closing price EPS Shares Outstanding(M) Beta P/E \\\n", 2588 | "Symbol \n", 2589 | "AMZN 346.15 0.59 459.00 0.52 589.80 \n", 2590 | "GOOG 1133.43 36.05 335.83 0.87 31.44 \n", 2591 | "FB 61.48 0.59 2450.00 NaN 104.93 \n", 2592 | "YHOO 34.90 1.27 1010.00 27.48 0.66 \n", 2593 | "TWTR 65.25 -0.30 555.20 NaN NaN \n", 2594 | "AAPL 501.53 40.32 892.45 12.44 447.59 \n", 2595 | "\n", 2596 | " Market Cap(B) \n", 2597 | "Symbol \n", 2598 | "AMZN 158.88 \n", 2599 | "GOOG 380.64 \n", 2600 | "FB 150.92 \n", 2601 | "YHOO 35.36 \n", 2602 | "TWTR 36.23 \n", 2603 | "AAPL 0.84 " 2604 | ] 2605 | }, 2606 | "execution_count": 145, 2607 | "metadata": {}, 2608 | "output_type": "execute_result" 2609 | } 2610 | ], 2611 | "source": [ 2612 | "stockDataDF=pd.read_csv('./data/tech_stockprices.csv').set_index(['Symbol']);stockDataDF\n" 2613 | ] 2614 | }, 2615 | { 2616 | "cell_type": "markdown", 2617 | "metadata": {}, 2618 | "source": [ 2619 | "

The concat function

" 2620 | ] 2621 | }, 2622 | { 2623 | "cell_type": "markdown", 2624 | "metadata": {}, 2625 | "source": [ 2626 | "Obtain various slices of the data" 2627 | ] 2628 | }, 2629 | { 2630 | "cell_type": "code", 2631 | "execution_count": 146, 2632 | "metadata": { 2633 | "collapsed": false 2634 | }, 2635 | "outputs": [ 2636 | { 2637 | "data": { 2638 | "text/html": [ 2639 | "
\n", 2640 | "\n", 2641 | " \n", 2642 | " \n", 2643 | " \n", 2644 | " \n", 2645 | " \n", 2646 | " \n", 2647 | " \n", 2648 | " \n", 2649 | " \n", 2650 | " \n", 2651 | " \n", 2652 | " \n", 2653 | " \n", 2654 | " \n", 2655 | " \n", 2656 | " \n", 2657 | " \n", 2658 | " \n", 2659 | " \n", 2660 | " \n", 2661 | " \n", 2662 | " \n", 2663 | " \n", 2664 | " \n", 2665 | " \n", 2666 | " \n", 2667 | " \n", 2668 | " \n", 2669 | " \n", 2670 | " \n", 2671 | " \n", 2672 | " \n", 2673 | " \n", 2674 | " \n", 2675 | "
Closing priceEPS
Symbol
AMZN 346.15 0.59
GOOG 1133.43 36.05
FB 61.48 0.59
YHOO 34.90 1.27
\n", 2676 | "
" 2677 | ], 2678 | "text/plain": [ 2679 | " Closing price EPS\n", 2680 | "Symbol \n", 2681 | "AMZN 346.15 0.59\n", 2682 | "GOOG 1133.43 36.05\n", 2683 | "FB 61.48 0.59\n", 2684 | "YHOO 34.90 1.27" 2685 | ] 2686 | }, 2687 | "execution_count": 146, 2688 | "metadata": {}, 2689 | "output_type": "execute_result" 2690 | } 2691 | ], 2692 | "source": [ 2693 | "A=stockDataDF.ix[:4, ['Closing price', 'EPS']]; A" 2694 | ] 2695 | }, 2696 | { 2697 | "cell_type": "code", 2698 | "execution_count": 147, 2699 | "metadata": { 2700 | "collapsed": false 2701 | }, 2702 | "outputs": [ 2703 | { 2704 | "data": { 2705 | "text/html": [ 2706 | "
\n", 2707 | "\n", 2708 | " \n", 2709 | " \n", 2710 | " \n", 2711 | " \n", 2712 | " \n", 2713 | " \n", 2714 | " \n", 2715 | " \n", 2716 | " \n", 2717 | " \n", 2718 | " \n", 2719 | " \n", 2720 | " \n", 2721 | " \n", 2722 | " \n", 2723 | " \n", 2724 | " \n", 2725 | " \n", 2726 | " \n", 2727 | " \n", 2728 | "
P/E
Symbol
FB 104.93
YHOO 0.66
\n", 2729 | "
" 2730 | ], 2731 | "text/plain": [ 2732 | " P/E\n", 2733 | "Symbol \n", 2734 | "FB 104.93\n", 2735 | "YHOO 0.66" 2736 | ] 2737 | }, 2738 | "execution_count": 147, 2739 | "metadata": {}, 2740 | "output_type": "execute_result" 2741 | } 2742 | ], 2743 | "source": [ 2744 | "B=stockDataDF.ix[2:-2, ['P/E']];B" 2745 | ] 2746 | }, 2747 | { 2748 | "cell_type": "code", 2749 | "execution_count": 148, 2750 | "metadata": { 2751 | "collapsed": false 2752 | }, 2753 | "outputs": [ 2754 | { 2755 | "data": { 2756 | "text/html": [ 2757 | "
\n", 2758 | "\n", 2759 | " \n", 2760 | " \n", 2761 | " \n", 2762 | " \n", 2763 | " \n", 2764 | " \n", 2765 | " \n", 2766 | " \n", 2767 | " \n", 2768 | " \n", 2769 | " \n", 2770 | " \n", 2771 | " \n", 2772 | " \n", 2773 | " \n", 2774 | " \n", 2775 | " \n", 2776 | " \n", 2777 | " \n", 2778 | " \n", 2779 | " \n", 2780 | " \n", 2781 | " \n", 2782 | " \n", 2783 | " \n", 2784 | " \n", 2785 | " \n", 2786 | " \n", 2787 | "
Market Cap(B)
Symbol
GOOG 380.64
FB 150.92
YHOO 35.36
TWTR 36.23
\n", 2788 | "
" 2789 | ], 2790 | "text/plain": [ 2791 | " Market Cap(B)\n", 2792 | "Symbol \n", 2793 | "GOOG 380.64\n", 2794 | "FB 150.92\n", 2795 | "YHOO 35.36\n", 2796 | "TWTR 36.23" 2797 | ] 2798 | }, 2799 | "execution_count": 148, 2800 | "metadata": {}, 2801 | "output_type": "execute_result" 2802 | } 2803 | ], 2804 | "source": [ 2805 | "C=stockDataDF.ix[1:5, ['Market Cap(B)']];C" 2806 | ] 2807 | }, 2808 | { 2809 | "cell_type": "markdown", 2810 | "metadata": {}, 2811 | "source": [ 2812 | "Perform concatenation, specifying outer join:" 2813 | ] 2814 | }, 2815 | { 2816 | "cell_type": "code", 2817 | "execution_count": 150, 2818 | "metadata": { 2819 | "collapsed": false 2820 | }, 2821 | "outputs": [ 2822 | { 2823 | "data": { 2824 | "text/html": [ 2825 | "
\n", 2826 | "\n", 2827 | " \n", 2828 | " \n", 2829 | " \n", 2830 | " \n", 2831 | " \n", 2832 | " \n", 2833 | " \n", 2834 | " \n", 2835 | " \n", 2836 | " \n", 2837 | " \n", 2838 | " \n", 2839 | " \n", 2840 | " \n", 2841 | " \n", 2842 | " \n", 2843 | " \n", 2844 | " \n", 2845 | " \n", 2846 | " \n", 2847 | " \n", 2848 | " \n", 2849 | " \n", 2850 | " \n", 2851 | " \n", 2852 | " \n", 2853 | " \n", 2854 | " \n", 2855 | " \n", 2856 | " \n", 2857 | " \n", 2858 | " \n", 2859 | " \n", 2860 | " \n", 2861 | " \n", 2862 | " \n", 2863 | " \n", 2864 | " \n", 2865 | " \n", 2866 | " \n", 2867 | " \n", 2868 | " \n", 2869 | " \n", 2870 | " \n", 2871 | " \n", 2872 | " \n", 2873 | "
Closing priceEPSP/EMarket Cap(B)
AMZN 346.15 0.59 NaN NaN
FB 61.48 0.59 104.93 150.92
GOOG 1133.43 36.05 NaN 380.64
TWTR NaN NaN NaN 36.23
YHOO 34.90 1.27 0.66 35.36
\n", 2874 | "
" 2875 | ], 2876 | "text/plain": [ 2877 | " Closing price EPS P/E Market Cap(B)\n", 2878 | "AMZN 346.15 0.59 NaN NaN\n", 2879 | "FB 61.48 0.59 104.93 150.92\n", 2880 | "GOOG 1133.43 36.05 NaN 380.64\n", 2881 | "TWTR NaN NaN NaN 36.23\n", 2882 | "YHOO 34.90 1.27 0.66 35.36" 2883 | ] 2884 | }, 2885 | "execution_count": 150, 2886 | "metadata": {}, 2887 | "output_type": "execute_result" 2888 | } 2889 | ], 2890 | "source": [ 2891 | "pd.concat([A,B,C],axis=1) # outer join" 2892 | ] 2893 | }, 2894 | { 2895 | "cell_type": "markdown", 2896 | "metadata": {}, 2897 | "source": [ 2898 | "Perform concatenation, specifying inner join:" 2899 | ] 2900 | }, 2901 | { 2902 | "cell_type": "code", 2903 | "execution_count": 151, 2904 | "metadata": { 2905 | "collapsed": false 2906 | }, 2907 | "outputs": [ 2908 | { 2909 | "data": { 2910 | "text/html": [ 2911 | "
\n", 2912 | "\n", 2913 | " \n", 2914 | " \n", 2915 | " \n", 2916 | " \n", 2917 | " \n", 2918 | " \n", 2919 | " \n", 2920 | " \n", 2921 | " \n", 2922 | " \n", 2923 | " \n", 2924 | " \n", 2925 | " \n", 2926 | " \n", 2927 | " \n", 2928 | " \n", 2929 | " \n", 2930 | " \n", 2931 | " \n", 2932 | " \n", 2933 | " \n", 2934 | " \n", 2935 | " \n", 2936 | " \n", 2937 | " \n", 2938 | " \n", 2939 | " \n", 2940 | " \n", 2941 | " \n", 2942 | " \n", 2943 | " \n", 2944 | " \n", 2945 | "
Closing priceEPSP/EMarket Cap(B)
Symbol
FB 61.48 0.59 104.93 150.92
YHOO 34.90 1.27 0.66 35.36
\n", 2946 | "
" 2947 | ], 2948 | "text/plain": [ 2949 | " Closing price EPS P/E Market Cap(B)\n", 2950 | "Symbol \n", 2951 | "FB 61.48 0.59 104.93 150.92\n", 2952 | "YHOO 34.90 1.27 0.66 35.36" 2953 | ] 2954 | }, 2955 | "execution_count": 151, 2956 | "metadata": {}, 2957 | "output_type": "execute_result" 2958 | } 2959 | ], 2960 | "source": [ 2961 | "pd.concat([A,B,C],axis=1, join='inner') # Inner join" 2962 | ] 2963 | }, 2964 | { 2965 | "cell_type": "markdown", 2966 | "metadata": {}, 2967 | "source": [ 2968 | "Join on specific index from original DataFrame:" 2969 | ] 2970 | }, 2971 | { 2972 | "cell_type": "code", 2973 | "execution_count": 152, 2974 | "metadata": { 2975 | "collapsed": false 2976 | }, 2977 | "outputs": [ 2978 | { 2979 | "data": { 2980 | "text/html": [ 2981 | "
\n", 2982 | "\n", 2983 | " \n", 2984 | " \n", 2985 | " \n", 2986 | " \n", 2987 | " \n", 2988 | " \n", 2989 | " \n", 2990 | " \n", 2991 | " \n", 2992 | " \n", 2993 | " \n", 2994 | " \n", 2995 | " \n", 2996 | " \n", 2997 | " \n", 2998 | " \n", 2999 | " \n", 3000 | " \n", 3001 | " \n", 3002 | " \n", 3003 | " \n", 3004 | " \n", 3005 | " \n", 3006 | " \n", 3007 | " \n", 3008 | " \n", 3009 | " \n", 3010 | " \n", 3011 | " \n", 3012 | " \n", 3013 | " \n", 3014 | " \n", 3015 | " \n", 3016 | " \n", 3017 | " \n", 3018 | " \n", 3019 | " \n", 3020 | " \n", 3021 | " \n", 3022 | " \n", 3023 | " \n", 3024 | " \n", 3025 | " \n", 3026 | " \n", 3027 | " \n", 3028 | " \n", 3029 | " \n", 3030 | " \n", 3031 | " \n", 3032 | " \n", 3033 | " \n", 3034 | " \n", 3035 | " \n", 3036 | " \n", 3037 | " \n", 3038 | " \n", 3039 | " \n", 3040 | " \n", 3041 | " \n", 3042 | " \n", 3043 | "
Closing priceEPSP/EMarket Cap(B)
Symbol
AMZN 346.15 0.59 NaN NaN
GOOG 1133.43 36.05 NaN 380.64
FB 61.48 0.59 104.93 150.92
YHOO 34.90 1.27 0.66 35.36
TWTR NaN NaN NaN 36.23
AAPL NaN NaN NaN NaN
\n", 3044 | "
" 3045 | ], 3046 | "text/plain": [ 3047 | " Closing price EPS P/E Market Cap(B)\n", 3048 | "Symbol \n", 3049 | "AMZN 346.15 0.59 NaN NaN\n", 3050 | "GOOG 1133.43 36.05 NaN 380.64\n", 3051 | "FB 61.48 0.59 104.93 150.92\n", 3052 | "YHOO 34.90 1.27 0.66 35.36\n", 3053 | "TWTR NaN NaN NaN 36.23\n", 3054 | "AAPL NaN NaN NaN NaN" 3055 | ] 3056 | }, 3057 | "execution_count": 152, 3058 | "metadata": {}, 3059 | "output_type": "execute_result" 3060 | } 3061 | ], 3062 | "source": [ 3063 | "pd.concat([A,B,C], axis=1, join_axes=[stockDataDF.index])" 3064 | ] 3065 | }, 3066 | { 3067 | "cell_type": "markdown", 3068 | "metadata": {}, 3069 | "source": [ 3070 | "Another case illustrating concat" 3071 | ] 3072 | }, 3073 | { 3074 | "cell_type": "code", 3075 | "execution_count": 153, 3076 | "metadata": { 3077 | "collapsed": false 3078 | }, 3079 | "outputs": [ 3080 | { 3081 | "data": { 3082 | "text/html": [ 3083 | "
\n", 3084 | "\n", 3085 | " \n", 3086 | " \n", 3087 | " \n", 3088 | " \n", 3089 | " \n", 3090 | " \n", 3091 | " \n", 3092 | " \n", 3093 | " \n", 3094 | " \n", 3095 | " \n", 3096 | " \n", 3097 | " \n", 3098 | " \n", 3099 | " \n", 3100 | " \n", 3101 | " \n", 3102 | " \n", 3103 | " \n", 3104 | " \n", 3105 | " \n", 3106 | " \n", 3107 | " \n", 3108 | " \n", 3109 | " \n", 3110 | " \n", 3111 | " \n", 3112 | " \n", 3113 | " \n", 3114 | " \n", 3115 | " \n", 3116 | " \n", 3117 | "
0123
0-1.749765 0.342680 1.153036-0.252436
1 0.981321 0.514219 0.221180-1.070043
2-0.189496 0.255001-0.458027 0.435163
\n", 3118 | "
" 3119 | ], 3120 | "text/plain": [ 3121 | " 0 1 2 3\n", 3122 | "0 -1.749765 0.342680 1.153036 -0.252436\n", 3123 | "1 0.981321 0.514219 0.221180 -1.070043\n", 3124 | "2 -0.189496 0.255001 -0.458027 0.435163" 3125 | ] 3126 | }, 3127 | "execution_count": 153, 3128 | "metadata": {}, 3129 | "output_type": "execute_result" 3130 | } 3131 | ], 3132 | "source": [ 3133 | "np.random.seed(100)\n", 3134 | "normDF=pd.DataFrame(np.random.randn(3,4));normDF\n" 3135 | ] 3136 | }, 3137 | { 3138 | "cell_type": "code", 3139 | "execution_count": 154, 3140 | "metadata": { 3141 | "collapsed": false 3142 | }, 3143 | "outputs": [ 3144 | { 3145 | "data": { 3146 | "text/html": [ 3147 | "
\n", 3148 | "\n", 3149 | " \n", 3150 | " \n", 3151 | " \n", 3152 | " \n", 3153 | " \n", 3154 | " \n", 3155 | " \n", 3156 | " \n", 3157 | " \n", 3158 | " \n", 3159 | " \n", 3160 | " \n", 3161 | " \n", 3162 | " \n", 3163 | " \n", 3164 | " \n", 3165 | " \n", 3166 | " \n", 3167 | " \n", 3168 | " \n", 3169 | " \n", 3170 | " \n", 3171 | " \n", 3172 | " \n", 3173 | " \n", 3174 | " \n", 3175 | " \n", 3176 | " \n", 3177 | " \n", 3178 | " \n", 3179 | " \n", 3180 | " \n", 3181 | "
0123
0 57 50 57 50
1 48 56 49 43
2 40 47 49 55
\n", 3182 | "
" 3183 | ], 3184 | "text/plain": [ 3185 | " 0 1 2 3\n", 3186 | "0 57 50 57 50\n", 3187 | "1 48 56 49 43\n", 3188 | "2 40 47 49 55" 3189 | ] 3190 | }, 3191 | "execution_count": 154, 3192 | "metadata": {}, 3193 | "output_type": "execute_result" 3194 | } 3195 | ], 3196 | "source": [ 3197 | "binomDF=pd.DataFrame(np.random.binomial(100,0.5,(3,4)));binomDF" 3198 | ] 3199 | }, 3200 | { 3201 | "cell_type": "code", 3202 | "execution_count": 155, 3203 | "metadata": { 3204 | "collapsed": false 3205 | }, 3206 | "outputs": [ 3207 | { 3208 | "data": { 3209 | "text/html": [ 3210 | "
\n", 3211 | "\n", 3212 | " \n", 3213 | " \n", 3214 | " \n", 3215 | " \n", 3216 | " \n", 3217 | " \n", 3218 | " \n", 3219 | " \n", 3220 | " \n", 3221 | " \n", 3222 | " \n", 3223 | " \n", 3224 | " \n", 3225 | " \n", 3226 | " \n", 3227 | " \n", 3228 | " \n", 3229 | " \n", 3230 | " \n", 3231 | " \n", 3232 | " \n", 3233 | " \n", 3234 | " \n", 3235 | " \n", 3236 | " \n", 3237 | " \n", 3238 | " \n", 3239 | " \n", 3240 | " \n", 3241 | " \n", 3242 | " \n", 3243 | " \n", 3244 | "
0123
0 93 96 96 89
1 76 96 104 103
2 96 93 107 84
\n", 3245 | "
" 3246 | ], 3247 | "text/plain": [ 3248 | " 0 1 2 3\n", 3249 | "0 93 96 96 89\n", 3250 | "1 76 96 104 103\n", 3251 | "2 96 93 107 84" 3252 | ] 3253 | }, 3254 | "execution_count": 155, 3255 | "metadata": {}, 3256 | "output_type": "execute_result" 3257 | } 3258 | ], 3259 | "source": [ 3260 | "poissonDF=pd.DataFrame(np.random.poisson(100,(3,4)));poissonDF" 3261 | ] 3262 | }, 3263 | { 3264 | "cell_type": "code", 3265 | "execution_count": 156, 3266 | "metadata": { 3267 | "collapsed": true 3268 | }, 3269 | "outputs": [], 3270 | "source": [ 3271 | "rand_distribs=[normDF,binomDF,poissonDF]" 3272 | ] 3273 | }, 3274 | { 3275 | "cell_type": "code", 3276 | "execution_count": 157, 3277 | "metadata": { 3278 | "collapsed": false 3279 | }, 3280 | "outputs": [ 3281 | { 3282 | "data": { 3283 | "text/html": [ 3284 | "
\n", 3285 | "\n", 3286 | " \n", 3287 | " \n", 3288 | " \n", 3289 | " \n", 3290 | " \n", 3291 | " \n", 3292 | " \n", 3293 | " \n", 3294 | " \n", 3295 | " \n", 3296 | " \n", 3297 | " \n", 3298 | " \n", 3299 | " \n", 3300 | " \n", 3301 | " \n", 3302 | " \n", 3303 | " \n", 3304 | " \n", 3305 | " \n", 3306 | " \n", 3307 | " \n", 3308 | " \n", 3309 | " \n", 3310 | " \n", 3311 | " \n", 3312 | " \n", 3313 | " \n", 3314 | " \n", 3315 | " \n", 3316 | " \n", 3317 | " \n", 3318 | " \n", 3319 | " \n", 3320 | " \n", 3321 | " \n", 3322 | " \n", 3323 | " \n", 3324 | " \n", 3325 | " \n", 3326 | " \n", 3327 | " \n", 3328 | " \n", 3329 | " \n", 3330 | " \n", 3331 | " \n", 3332 | " \n", 3333 | " \n", 3334 | " \n", 3335 | " \n", 3336 | " \n", 3337 | " \n", 3338 | " \n", 3339 | " \n", 3340 | " \n", 3341 | " \n", 3342 | " \n", 3343 | " \n", 3344 | " \n", 3345 | " \n", 3346 | " \n", 3347 | " \n", 3348 | " \n", 3349 | " \n", 3350 | " \n", 3351 | " \n", 3352 | " \n", 3353 | " \n", 3354 | " \n", 3355 | " \n", 3356 | " \n", 3357 | " \n", 3358 | " \n", 3359 | " \n", 3360 | " \n", 3361 | " \n", 3362 | " \n", 3363 | " \n", 3364 | "
0123
Normal0 -1.749765 0.342680 1.153036 -0.252436
1 0.981321 0.514219 0.221180 -1.070043
2 -0.189496 0.255001 -0.458027 0.435163
Binomial0 57.000000 50.000000 57.000000 50.000000
1 48.000000 56.000000 49.000000 43.000000
2 40.000000 47.000000 49.000000 55.000000
Poisson0 93.000000 96.000000 96.000000 89.000000
1 76.000000 96.000000 104.000000 103.000000
2 96.000000 93.000000 107.000000 84.000000
\n", 3365 | "
" 3366 | ], 3367 | "text/plain": [ 3368 | " 0 1 2 3\n", 3369 | "Normal 0 -1.749765 0.342680 1.153036 -0.252436\n", 3370 | " 1 0.981321 0.514219 0.221180 -1.070043\n", 3371 | " 2 -0.189496 0.255001 -0.458027 0.435163\n", 3372 | "Binomial 0 57.000000 50.000000 57.000000 50.000000\n", 3373 | " 1 48.000000 56.000000 49.000000 43.000000\n", 3374 | " 2 40.000000 47.000000 49.000000 55.000000\n", 3375 | "Poisson 0 93.000000 96.000000 96.000000 89.000000\n", 3376 | " 1 76.000000 96.000000 104.000000 103.000000\n", 3377 | " 2 96.000000 93.000000 107.000000 84.000000" 3378 | ] 3379 | }, 3380 | "execution_count": 157, 3381 | "metadata": {}, 3382 | "output_type": "execute_result" 3383 | } 3384 | ], 3385 | "source": [ 3386 | "rand_distribsDF=pd.concat(rand_distribs,keys=['Normal', 'Binomial', 'Poisson']);rand_distribsDF" 3387 | ] 3388 | }, 3389 | { 3390 | "cell_type": "markdown", 3391 | "metadata": {}, 3392 | "source": [ 3393 | "

Using append

" 3394 | ] 3395 | }, 3396 | { 3397 | "cell_type": "code", 3398 | "execution_count": 158, 3399 | "metadata": { 3400 | "collapsed": false 3401 | }, 3402 | "outputs": [ 3403 | { 3404 | "data": { 3405 | "text/html": [ 3406 | "
\n", 3407 | "\n", 3408 | " \n", 3409 | " \n", 3410 | " \n", 3411 | " \n", 3412 | " \n", 3413 | " \n", 3414 | " \n", 3415 | " \n", 3416 | " \n", 3417 | " \n", 3418 | " \n", 3419 | " \n", 3420 | " \n", 3421 | " \n", 3422 | " \n", 3423 | " \n", 3424 | " \n", 3425 | " \n", 3426 | " \n", 3427 | " \n", 3428 | " \n", 3429 | " \n", 3430 | " \n", 3431 | " \n", 3432 | " \n", 3433 | " \n", 3434 | " \n", 3435 | " \n", 3436 | "
Closing priceEPSShares Outstanding(M)
Symbol
AMZN 346.15 0.59 459.00
GOOG 1133.43 36.05 335.83
\n", 3437 | "
" 3438 | ], 3439 | "text/plain": [ 3440 | " Closing price EPS Shares Outstanding(M)\n", 3441 | "Symbol \n", 3442 | "AMZN 346.15 0.59 459.00\n", 3443 | "GOOG 1133.43 36.05 335.83" 3444 | ] 3445 | }, 3446 | "execution_count": 158, 3447 | "metadata": {}, 3448 | "output_type": "execute_result" 3449 | } 3450 | ], 3451 | "source": [ 3452 | "stockDataA=stockDataDF.ix[:2,:3]\n", 3453 | "stockDataA\n" 3454 | ] 3455 | }, 3456 | { 3457 | "cell_type": "code", 3458 | "execution_count": 159, 3459 | "metadata": { 3460 | "collapsed": false 3461 | }, 3462 | "outputs": [ 3463 | { 3464 | "data": { 3465 | "text/html": [ 3466 | "
\n", 3467 | "\n", 3468 | " \n", 3469 | " \n", 3470 | " \n", 3471 | " \n", 3472 | " \n", 3473 | " \n", 3474 | " \n", 3475 | " \n", 3476 | " \n", 3477 | " \n", 3478 | " \n", 3479 | " \n", 3480 | " \n", 3481 | " \n", 3482 | " \n", 3483 | " \n", 3484 | " \n", 3485 | " \n", 3486 | " \n", 3487 | " \n", 3488 | " \n", 3489 | " \n", 3490 | " \n", 3491 | " \n", 3492 | " \n", 3493 | " \n", 3494 | " \n", 3495 | " \n", 3496 | " \n", 3497 | " \n", 3498 | " \n", 3499 | " \n", 3500 | " \n", 3501 | " \n", 3502 | " \n", 3503 | " \n", 3504 | " \n", 3505 | " \n", 3506 | " \n", 3507 | " \n", 3508 | " \n", 3509 | " \n", 3510 | " \n", 3511 | " \n", 3512 | " \n", 3513 | " \n", 3514 | " \n", 3515 | " \n", 3516 | " \n", 3517 | " \n", 3518 | " \n", 3519 | " \n", 3520 | " \n", 3521 | " \n", 3522 | " \n", 3523 | " \n", 3524 | " \n", 3525 | " \n", 3526 | "
Closing priceEPSShares Outstanding(M)BetaP/EMarket Cap(B)
Symbol
FB 61.48 0.59 2450.00 NaN 104.93 150.92
YHOO 34.90 1.27 1010.00 27.48 0.66 35.36
TWTR 65.25 -0.30 555.20 NaN NaN 36.23
AAPL 501.53 40.32 892.45 12.44 447.59 0.84
\n", 3527 | "
" 3528 | ], 3529 | "text/plain": [ 3530 | " Closing price EPS Shares Outstanding(M) Beta P/E \\\n", 3531 | "Symbol \n", 3532 | "FB 61.48 0.59 2450.00 NaN 104.93 \n", 3533 | "YHOO 34.90 1.27 1010.00 27.48 0.66 \n", 3534 | "TWTR 65.25 -0.30 555.20 NaN NaN \n", 3535 | "AAPL 501.53 40.32 892.45 12.44 447.59 \n", 3536 | "\n", 3537 | " Market Cap(B) \n", 3538 | "Symbol \n", 3539 | "FB 150.92 \n", 3540 | "YHOO 35.36 \n", 3541 | "TWTR 36.23 \n", 3542 | "AAPL 0.84 " 3543 | ] 3544 | }, 3545 | "execution_count": 159, 3546 | "metadata": {}, 3547 | "output_type": "execute_result" 3548 | } 3549 | ], 3550 | "source": [ 3551 | "stockDataB=stockDataDF[2:]\n", 3552 | "stockDataB\n" 3553 | ] 3554 | }, 3555 | { 3556 | "cell_type": "code", 3557 | "execution_count": 161, 3558 | "metadata": { 3559 | "collapsed": false 3560 | }, 3561 | "outputs": [ 3562 | { 3563 | "data": { 3564 | "text/html": [ 3565 | "
\n", 3566 | "\n", 3567 | " \n", 3568 | " \n", 3569 | " \n", 3570 | " \n", 3571 | " \n", 3572 | " \n", 3573 | " \n", 3574 | " \n", 3575 | " \n", 3576 | " \n", 3577 | " \n", 3578 | " \n", 3579 | " \n", 3580 | " \n", 3581 | " \n", 3582 | " \n", 3583 | " \n", 3584 | " \n", 3585 | " \n", 3586 | " \n", 3587 | " \n", 3588 | " \n", 3589 | " \n", 3590 | " \n", 3591 | " \n", 3592 | " \n", 3593 | " \n", 3594 | " \n", 3595 | " \n", 3596 | " \n", 3597 | " \n", 3598 | " \n", 3599 | " \n", 3600 | " \n", 3601 | " \n", 3602 | " \n", 3603 | " \n", 3604 | " \n", 3605 | " \n", 3606 | " \n", 3607 | " \n", 3608 | " \n", 3609 | " \n", 3610 | " \n", 3611 | " \n", 3612 | " \n", 3613 | " \n", 3614 | " \n", 3615 | " \n", 3616 | " \n", 3617 | " \n", 3618 | " \n", 3619 | " \n", 3620 | " \n", 3621 | " \n", 3622 | " \n", 3623 | " \n", 3624 | " \n", 3625 | " \n", 3626 | " \n", 3627 | " \n", 3628 | " \n", 3629 | " \n", 3630 | " \n", 3631 | " \n", 3632 | " \n", 3633 | " \n", 3634 | " \n", 3635 | " \n", 3636 | " \n", 3637 | " \n", 3638 | " \n", 3639 | " \n", 3640 | " \n", 3641 | " \n", 3642 | " \n", 3643 | "
BetaClosing priceEPSMarket Cap(B)P/EShares Outstanding(M)
Symbol
AMZN NaN 346.15 0.59 NaN NaN 459.00
GOOG NaN 1133.43 36.05 NaN NaN 335.83
FB NaN 61.48 0.59 150.92 104.93 2450.00
YHOO 27.48 34.90 1.27 35.36 0.66 1010.00
TWTR NaN 65.25 -0.30 36.23 NaN 555.20
AAPL 12.44 501.53 40.32 0.84 447.59 892.45
\n", 3644 | "
" 3645 | ], 3646 | "text/plain": [ 3647 | " Beta Closing price EPS Market Cap(B) P/E \\\n", 3648 | "Symbol \n", 3649 | "AMZN NaN 346.15 0.59 NaN NaN \n", 3650 | "GOOG NaN 1133.43 36.05 NaN NaN \n", 3651 | "FB NaN 61.48 0.59 150.92 104.93 \n", 3652 | "YHOO 27.48 34.90 1.27 35.36 0.66 \n", 3653 | "TWTR NaN 65.25 -0.30 36.23 NaN \n", 3654 | "AAPL 12.44 501.53 40.32 0.84 447.59 \n", 3655 | "\n", 3656 | " Shares Outstanding(M) \n", 3657 | "Symbol \n", 3658 | "AMZN 459.00 \n", 3659 | "GOOG 335.83 \n", 3660 | "FB 2450.00 \n", 3661 | "YHOO 1010.00 \n", 3662 | "TWTR 555.20 \n", 3663 | "AAPL 892.45 " 3664 | ] 3665 | }, 3666 | "execution_count": 161, 3667 | "metadata": {}, 3668 | "output_type": "execute_result" 3669 | } 3670 | ], 3671 | "source": [ 3672 | "stockDataA.append(stockDataB)" 3673 | ] 3674 | }, 3675 | { 3676 | "cell_type": "code", 3677 | "execution_count": 160, 3678 | "metadata": { 3679 | "collapsed": false 3680 | }, 3681 | "outputs": [ 3682 | { 3683 | "data": { 3684 | "text/html": [ 3685 | "
\n", 3686 | "\n", 3687 | " \n", 3688 | " \n", 3689 | " \n", 3690 | " \n", 3691 | " \n", 3692 | " \n", 3693 | " \n", 3694 | " \n", 3695 | " \n", 3696 | " \n", 3697 | " \n", 3698 | " \n", 3699 | " \n", 3700 | " \n", 3701 | " \n", 3702 | " \n", 3703 | " \n", 3704 | " \n", 3705 | " \n", 3706 | " \n", 3707 | " \n", 3708 | " \n", 3709 | " \n", 3710 | " \n", 3711 | " \n", 3712 | " \n", 3713 | " \n", 3714 | " \n", 3715 | " \n", 3716 | " \n", 3717 | " \n", 3718 | " \n", 3719 | " \n", 3720 | " \n", 3721 | " \n", 3722 | " \n", 3723 | " \n", 3724 | " \n", 3725 | " \n", 3726 | " \n", 3727 | " \n", 3728 | " \n", 3729 | " \n", 3730 | " \n", 3731 | " \n", 3732 | " \n", 3733 | " \n", 3734 | " \n", 3735 | " \n", 3736 | " \n", 3737 | " \n", 3738 | " \n", 3739 | " \n", 3740 | " \n", 3741 | " \n", 3742 | " \n", 3743 | " \n", 3744 | " \n", 3745 | " \n", 3746 | " \n", 3747 | " \n", 3748 | " \n", 3749 | " \n", 3750 | " \n", 3751 | " \n", 3752 | " \n", 3753 | " \n", 3754 | " \n", 3755 | " \n", 3756 | " \n", 3757 | " \n", 3758 | " \n", 3759 | " \n", 3760 | " \n", 3761 | " \n", 3762 | " \n", 3763 | "
Closing priceEPSShares Outstanding(M)BetaP/EMarket Cap(B)
Symbol
AMZN 346.15 0.59 459.00 NaN NaN NaN
GOOG 1133.43 36.05 335.83 NaN NaN NaN
FB 61.48 0.59 2450.00 NaN 104.93 150.92
YHOO 34.90 1.27 1010.00 27.48 0.66 35.36
TWTR 65.25 -0.30 555.20 NaN NaN 36.23
AAPL 501.53 40.32 892.45 12.44 447.59 0.84
\n", 3764 | "
" 3765 | ], 3766 | "text/plain": [ 3767 | " Closing price EPS Shares Outstanding(M) Beta P/E \\\n", 3768 | "Symbol \n", 3769 | "AMZN 346.15 0.59 459.00 NaN NaN \n", 3770 | "GOOG 1133.43 36.05 335.83 NaN NaN \n", 3771 | "FB 61.48 0.59 2450.00 NaN 104.93 \n", 3772 | "YHOO 34.90 1.27 1010.00 27.48 0.66 \n", 3773 | "TWTR 65.25 -0.30 555.20 NaN NaN \n", 3774 | "AAPL 501.53 40.32 892.45 12.44 447.59 \n", 3775 | "\n", 3776 | " Market Cap(B) \n", 3777 | "Symbol \n", 3778 | "AMZN NaN \n", 3779 | "GOOG NaN \n", 3780 | "FB 150.92 \n", 3781 | "YHOO 35.36 \n", 3782 | "TWTR 36.23 \n", 3783 | "AAPL 0.84 " 3784 | ] 3785 | }, 3786 | "execution_count": 160, 3787 | "metadata": {}, 3788 | "output_type": "execute_result" 3789 | } 3790 | ], 3791 | "source": [ 3792 | "stockDataA.append(stockDataB).reindex_axis(stockDataDF.columns, axis=1)" 3793 | ] 3794 | }, 3795 | { 3796 | "cell_type": "markdown", 3797 | "metadata": {}, 3798 | "source": [ 3799 | "

Appending a single row to a DataFrame

" 3800 | ] 3801 | }, 3802 | { 3803 | "cell_type": "code", 3804 | "execution_count": 162, 3805 | "metadata": { 3806 | "collapsed": false 3807 | }, 3808 | "outputs": [ 3809 | { 3810 | "data": { 3811 | "text/html": [ 3812 | "
\n", 3813 | "\n", 3814 | " \n", 3815 | " \n", 3816 | " \n", 3817 | " \n", 3818 | " \n", 3819 | " \n", 3820 | " \n", 3821 | " \n", 3822 | " \n", 3823 | " \n", 3824 | " \n", 3825 | " \n", 3826 | " \n", 3827 | " \n", 3828 | " \n", 3829 | " \n", 3830 | " \n", 3831 | " \n", 3832 | " \n", 3833 | " \n", 3834 | " \n", 3835 | " \n", 3836 | " \n", 3837 | " \n", 3838 | " \n", 3839 | " \n", 3840 | " \n", 3841 | " \n", 3842 | " \n", 3843 | " \n", 3844 | " \n", 3845 | " \n", 3846 | " \n", 3847 | " \n", 3848 | "
machine learningsearchsorting
0 RandomForest DFS Quicksort
1 K Nearest Neighbor BFS Mergesort
2 Logistic Regression Binary Search Heapsort
3 K-Means Clustering Linear Bubble Sort
\n", 3849 | "
" 3850 | ], 3851 | "text/plain": [ 3852 | " machine learning search sorting\n", 3853 | "0 RandomForest DFS Quicksort\n", 3854 | "1 K Nearest Neighbor BFS Mergesort\n", 3855 | "2 Logistic Regression Binary Search Heapsort\n", 3856 | "3 K-Means Clustering Linear Bubble Sort" 3857 | ] 3858 | }, 3859 | "execution_count": 162, 3860 | "metadata": {}, 3861 | "output_type": "execute_result" 3862 | } 3863 | ], 3864 | "source": [ 3865 | "algos={'search':['DFS','BFS','Binary Search','Linear'],\n", 3866 | " 'sorting': ['Quicksort','Mergesort','Heapsort','Bubble Sort'],\n", 3867 | " 'machine learning':['RandomForest','K Nearest Neighbor','Logistic Regression','K-Means Clustering']}\n", 3868 | "algoDF=pd.DataFrame(algos);algoDF\n", 3869 | "\n" 3870 | ] 3871 | }, 3872 | { 3873 | "cell_type": "code", 3874 | "execution_count": 163, 3875 | "metadata": { 3876 | "collapsed": false 3877 | }, 3878 | "outputs": [ 3879 | { 3880 | "data": { 3881 | "text/html": [ 3882 | "
\n", 3883 | "\n", 3884 | " \n", 3885 | " \n", 3886 | " \n", 3887 | " \n", 3888 | " \n", 3889 | " \n", 3890 | " \n", 3891 | " \n", 3892 | " \n", 3893 | " \n", 3894 | " \n", 3895 | " \n", 3896 | " \n", 3897 | " \n", 3898 | " \n", 3899 | " \n", 3900 | " \n", 3901 | " \n", 3902 | " \n", 3903 | " \n", 3904 | " \n", 3905 | " \n", 3906 | " \n", 3907 | " \n", 3908 | " \n", 3909 | " \n", 3910 | " \n", 3911 | " \n", 3912 | " \n", 3913 | " \n", 3914 | " \n", 3915 | " \n", 3916 | " \n", 3917 | " \n", 3918 | " \n", 3919 | " \n", 3920 | " \n", 3921 | " \n", 3922 | " \n", 3923 | " \n", 3924 | "
machine learningsearchsorting
0 RandomForest DFS Quicksort
1 K Nearest Neighbor BFS Mergesort
2 Logistic Regression Binary Search Heapsort
3 K-Means Clustering Linear Bubble Sort
4 Linear Regression ShortestPath Insertion Sort
\n", 3925 | "
" 3926 | ], 3927 | "text/plain": [ 3928 | " machine learning search sorting\n", 3929 | "0 RandomForest DFS Quicksort\n", 3930 | "1 K Nearest Neighbor BFS Mergesort\n", 3931 | "2 Logistic Regression Binary Search Heapsort\n", 3932 | "3 K-Means Clustering Linear Bubble Sort\n", 3933 | "4 Linear Regression ShortestPath Insertion Sort" 3934 | ] 3935 | }, 3936 | "execution_count": 163, 3937 | "metadata": {}, 3938 | "output_type": "execute_result" 3939 | } 3940 | ], 3941 | "source": [ 3942 | "moreAlgos={'search': 'ShortestPath' , 'sorting': 'Insertion Sort',\n", 3943 | " 'machine learning': 'Linear Regression'}\n", 3944 | "algoDF.append(moreAlgos,ignore_index=True)\n" 3945 | ] 3946 | }, 3947 | { 3948 | "cell_type": "markdown", 3949 | "metadata": {}, 3950 | "source": [ 3951 | "

SQL-Like Merging/Joining of DataFrame objects

" 3952 | ] 3953 | }, 3954 | { 3955 | "cell_type": "markdown", 3956 | "metadata": {}, 3957 | "source": [ 3958 | "Read stock data into DataFrame" 3959 | ] 3960 | }, 3961 | { 3962 | "cell_type": "code", 3963 | "execution_count": 164, 3964 | "metadata": { 3965 | "collapsed": false 3966 | }, 3967 | "outputs": [ 3968 | { 3969 | "data": { 3970 | "text/html": [ 3971 | "
\n", 3972 | "\n", 3973 | " \n", 3974 | " \n", 3975 | " \n", 3976 | " \n", 3977 | " \n", 3978 | " \n", 3979 | " \n", 3980 | " \n", 3981 | " \n", 3982 | " \n", 3983 | " \n", 3984 | " \n", 3985 | " \n", 3986 | " \n", 3987 | " \n", 3988 | " \n", 3989 | " \n", 3990 | " \n", 3991 | " \n", 3992 | " \n", 3993 | " \n", 3994 | " \n", 3995 | " \n", 3996 | " \n", 3997 | " \n", 3998 | " \n", 3999 | " \n", 4000 | " \n", 4001 | " \n", 4002 | " \n", 4003 | " \n", 4004 | " \n", 4005 | " \n", 4006 | " \n", 4007 | " \n", 4008 | " \n", 4009 | " \n", 4010 | " \n", 4011 | " \n", 4012 | " \n", 4013 | " \n", 4014 | " \n", 4015 | " \n", 4016 | " \n", 4017 | " \n", 4018 | " \n", 4019 | " \n", 4020 | " \n", 4021 | " \n", 4022 | " \n", 4023 | " \n", 4024 | " \n", 4025 | " \n", 4026 | " \n", 4027 | " \n", 4028 | " \n", 4029 | " \n", 4030 | " \n", 4031 | " \n", 4032 | " \n", 4033 | "
TradingDateNasdaqS&P 500Russell 2000DJIA
0 2014/01/30 4123.13 1794.19 1139.36 15848.61
1 2014/01/31 4103.88 1782.59 1130.88 15698.85
2 2014/02/03 3996.96 1741.89 1094.58 15372.80
3 2014/02/04 4031.52 1755.20 1102.84 15445.24
4 2014/02/05 4011.55 1751.64 1093.59 15440.23
5 2014/02/06 4057.12 1773.43 1103.93 15628.53
\n", 4034 | "
" 4035 | ], 4036 | "text/plain": [ 4037 | " TradingDate Nasdaq S&P 500 Russell 2000 DJIA\n", 4038 | "0 2014/01/30 4123.13 1794.19 1139.36 15848.61\n", 4039 | "1 2014/01/31 4103.88 1782.59 1130.88 15698.85\n", 4040 | "2 2014/02/03 3996.96 1741.89 1094.58 15372.80\n", 4041 | "3 2014/02/04 4031.52 1755.20 1102.84 15445.24\n", 4042 | "4 2014/02/05 4011.55 1751.64 1093.59 15440.23\n", 4043 | "5 2014/02/06 4057.12 1773.43 1103.93 15628.53" 4044 | ] 4045 | }, 4046 | "execution_count": 164, 4047 | "metadata": {}, 4048 | "output_type": "execute_result" 4049 | } 4050 | ], 4051 | "source": [ 4052 | "USIndexDataDF=pd.read_csv('./data/us_index_data.csv')\n", 4053 | "USIndexDataDF\n" 4054 | ] 4055 | }, 4056 | { 4057 | "cell_type": "code", 4058 | "execution_count": null, 4059 | "metadata": { 4060 | "collapsed": true 4061 | }, 4062 | "outputs": [], 4063 | "source": [] 4064 | } 4065 | ], 4066 | "metadata": { 4067 | "kernelspec": { 4068 | "display_name": "Python 2", 4069 | "language": "python", 4070 | "name": "python2" 4071 | }, 4072 | "language_info": { 4073 | "codemirror_mode": { 4074 | "name": "ipython", 4075 | "version": 2 4076 | }, 4077 | "file_extension": ".py", 4078 | "mimetype": "text/x-python", 4079 | "name": "python", 4080 | "nbconvert_exporter": "python", 4081 | "pygments_lexer": "ipython2", 4082 | "version": "2.7.9" 4083 | } 4084 | }, 4085 | "nbformat": 4, 4086 | "nbformat_minor": 0 4087 | } 4088 | -------------------------------------------------------------------------------- /MasteringPandas_chap7-ClassicalStatistics.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 4, 6 | "metadata": { 7 | "collapsed": true 8 | }, 9 | "outputs": [], 10 | "source": [ 11 | "import numpy as np\n", 12 | "import pandas as pd\n", 13 | "import matplotlib.pyplot as plt\n", 14 | "%matplotlib inline " 15 | ] 16 | }, 17 | { 18 | "cell_type": "code", 19 | "execution_count": 5, 20 | "metadata": { 21 | "collapsed": false 22 | }, 23 | "outputs": [ 24 | { 25 | "data": { 26 | "image/png": [ 27 | "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEZCAYAAACXRVJOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", 28 | "AAALEgAACxIB0t1+/AAAGNNJREFUeJzt3X20JHV95/H3B4YnRR0JcQRm4vgAu5KNER9wRF2u6O7B\n", 29 | "0YzZ+ASrQd1sZFlR4248Rhd11LhuzsmuBD0iiQ9BgxCikYMKsi5yicQNigygzqCykTiDMihPCqMG\n", 30 | "5Lt/dA00Td+5fWdudfXcfr/O6XO7qn5dv+/t7lufrl9V9U1VIUnSHl0XIEmaDAaCJAkwECRJDQNB\n", 31 | "kgQYCJKkhoEgSQIMBHUgyelJThlTX/ckecwI7VY3bUf6m0jyl0ne3dx/VpJrd7XWvnVfkOR3m/uv\n", 32 | "SvLlRVz3y5NctFjr09KyrOsCtPQkuR54BPBL4C7gK8B/qqotAFV1UnfVLZpqblTVl4F/Od8DkqwH\n", 33 | "HltVv7vDFVetXYwCk6wG/hFYVlX3NOs+CzhrMdavpcc9BLWhgBdU1UOAg4CtwPu7LakVWdSVNRZz\n", 34 | "ndtX3cI6tQQZCGpVVf0C+DRw+PZ5A8MtM0m2JHlTkpuS/CDJbydZm+Q7SW5O8kd9j90nyalJbmhu\n", 35 | "70uyd9/yNzXr2JLkP/TXkuT5STYkuT3J95O8Y9TfI8kRSa5M8pMk5wD79i2bSbK5b/rNTf8/SXJt\n", 36 | "kmOSHAu8BXhZkp8m2dC0nU3yx0n+HrgDeEwz7/fu333en+S2JJuSHNO34Pokz+mbXp/kE83k3zU/\n", 37 | "b2tqWTM4BJXkqCRfa9b91SRP71s2m+RdSS5rHn9Rkl8Z9TnT7sdAUFsCkORBwMuA/9u37N7hlsYK\n", 38 | "YB96exNvBz4MvBw4AngW8PYkj2ra/jfgSOA3m9uRwClNX8cC/xV4LnBY87PfHcArquphwPOBk5K8\n", 39 | "cN5fpBc45wFnAg8H/gZ40cDvsL3tvwBeCzylqh4K/Fvg+qr6AvDfgXOq6iFVdUTfw14B/EfgIcA/\n", 40 | "DXl+ngZcB/wK8A7gb5Msb5YNtu2//6zm58Oq6qFV9Q8DtR4AfB44FTgA+F/A55M8vK/Z8cCr6A0B\n", 41 | "7g384ZCnSEuEgaA2BDgvya3AbcBzgD8d0ma7u4D3VNUvgb+mt3E6tarurKqNwEZ6G3+Afw+8q6p+\n", 42 | "XFU/Bt4JbB+Tfynw0araWFXb6G0871VVl1bVt5r73wDOAY4e4fdZQ28c/s+q6pdV9Wnga3O0/SW9\n", 43 | "cPv1JHtV1fer6h/7fufB4ZsC/rKqNlXVPVV195B13tTX97nAt+kF2jCZ4/4wzwe+XVVnNX2fA1wL\n", 44 | "rOur7WNVdV1V/Rw4F3jiPOvUbsxAUBsKeGFVPZzexvF1wKVJHjFH+5vrvm9Z/Fnzc2vf8p8B+zf3\n", 45 | "D6b3KXq77zfzoLeHsXlg2b2SPC3JJc3Q1G3AifQ+dc/nYOCGgXn/NKxhVV0H/AGwHtia5OwkB82z\n", 46 | "/s3zLB/W98HDGi7QwQw8R0PWfWPf/f7XQUuQgaBWVc9n6H1yfmb/op1c5Q+A1X3Tv8Z9G8wfNtP9\n", 47 | "y/p9kt7Qz8qqWg58iNH+Bn4IHDIw71HDGgJU1dlV9aymTQF/sn3RXA+Zp/9hff+guX8n8OC+ZY9c\n", 48 | "wHpv4IG/x6N4YABpShgIasv2YwhpxukfDmzqW7azZ76cDZyS5MAkB9I75vBXzbJzgVcleXxz7GLw\n", 49 | "oPH+wK1V9c9JjqQ3/DRKMH0FuDvJ65PsleR3gKcOa5jksOYg8j7AL4Cf0wtD6H3aXj3kTKL5notH\n", 50 | "9PX9EnqnuF7QLLsKOC7JsiRP4f7HNn4E3AM8do71XggcluT45vEva9b9uQXUpiXEQFBbPpvkp8Dt\n", 51 | "wLuBE6pqeyDs6EDosOl+fwxcAVzT3K5o5tEcuD0V+BLwHeDigXX9Z+BdSX4CvI3e8Yp5+62qu4Df\n", 52 | "oXdw9WZ6xyo+Pcdj9wHeS29j/EPgQHpnF0HvYDTAzUmuGPH3LeAfgEObdb4beFFV3dosfxu9Df6t\n", 53 | "9Iap7r3GoDmO8h7g75PckuRp3P/6iZuBF9A7EP9jegeMX1BVt8xR2+DrpiUmbf+DnCR70vuj3VJV\n", 54 | "vzVk+WnA84BtwKuqakOrBUmShhrHHsIb6J0lMuwUvbXA46rqUOA1wOljqEeSNESrgZBkJbCW3nnl\n", 55 | "w8Yi19E7t5uquhxYnmRFmzVJkoZrew/hfcCb6B3YGuYQ7n/K3RZgZcs1SZKGaC0QkryA3gU1G9jx\n", 56 | "mQrDLtSRJI1Zm992ehSwrjlOsC/w0CQfr6oT+trcAKzqm17JkHOgkxgSkrQTqmrkU4dbP8sIIMnR\n", 57 | "wB8OnmXUhMXJVbU2yRp6X1ewZsjjayG/1O6uF4BzvS7rm1srPS/ozdO1JOuran3XdUyCUZ+LHb+3\n", 58 | "2jS+95bvi/ssdNs5zv+HUABJTgSoqjOq6oL0vtXyOnpXXL56jPVIkvqMJRCq6lLg0ub+GQPLTh5H\n", 59 | "DZKkHfNK5d3OTNcFTJLZrguYILNdFzBBZrsuYHc1lmMIu8pjCGPrebc6hqCF8701XRa67XQPQZIE\n", 60 | "GAiSpIaBIEkCDARJUsNAkCQBBoIkqWEgSJIAA0GS1DAQJEmAgSBJahgIkiTAQJAkNQwESRJgIEiS\n", 61 | "GgaCJAkwECRJDQNBkgS0HAhJ9k1yeZKrkmxM8t4hbWaS3J5kQ3M7pc2aJEnDLWtz5VX18yTPrqpt\n", 62 | "SZYBlyV5ZlVdNtD00qpa12YtkqQda33IqKq2NXf3BvYEbhnSzP+1Kkkdaz0QkuyR5CpgK3BJVW0c\n", 63 | "aFLAUUmuTnJBksPbrkmS9EDj2EO4p6qeCKwE/nWSmYEmVwKrquo3gfcD57VdkyTpgVo9htCvqm5P\n", 64 | "8nngKcBs3/yf9t2/MMkHkxxQVfcbWkqyvm9ytqpmkSTdq/nAPbPTj6+qRSvmAStPDgTurqrbkuwH\n", 65 | "XAS8s6ou7muzAripqirJkcC5VbV6YD1VVVNznCFJ9UbSxt4z0/Q8TyPfW9NlodvOtvcQDgLOTLIH\n", 66 | "veGpT1TVxUlOBKiqM4AXAycluRvYBhzXck2SpCFa3UNYLO4hjK1nP8Utcb63pstCt51eqSxJAgwE\n", 67 | "SVLDQJAkAQaCJKlhIEiSAANBktQwECRJgIEgSWoYCJIkwECQJDUMBEkSYCBIkhoGgiQJMBAkSQ0D\n", 68 | "QZIEGAiSpIaBIEkCDARJUsNAkCQBLQZCkn2TXJ7kqiQbk7x3jnanJflukquTHNFWPZKkHVvW1oqr\n", 69 | "6udJnl1V25IsAy5L8syqumx7myRrgcdV1aFJngacDqxpqyZJ0txaHTKqqm3N3b2BPYFbBpqsA85s\n", 70 | "2l4OLE+yos2aJEnDtRoISfZIchWwFbikqjYONDkE2Nw3vQVY2WZNkqThWhsyAqiqe4AnJnkYcFGS\n", 71 | "maqaHWiWwYcNW1eS9X2Ts0PWs+iSDK1FkiZRkhlgZqcfXzWebV6StwE/q6o/7Zv3IXob93Oa6WuB\n", 72 | "o6tq68Bjq6oGg6N1vUDoIhNCV/128TxrfLp8T/veGr+FbjvbPMvowCTLm/v7Af8G2DDQ7HzghKbN\n", 73 | "GuC2wTCQJI1Hm0NGBwFnJtmDXvB8oqouTnIiQFWdUVUXJFmb5DrgTuDVLdYjSdqBsQ0Z7QqHjMbX\n", 74 | "r7v1S5tDRtNlYoaMJEm7FwNBkgQYCJKkhoEgSQIMBElSw0CQJAEGgiSpYSBIkgADQZLUMBAkSYCB\n", 75 | "IElqGAiSJMBAkCQ1DARJEmAgSJIaBoIkCTAQJEkNA0GSBBgIkqRGq4GQZFWSS5J8K8k3k7x+SJuZ\n", 76 | "JLcn2dDcTmmzJknScMtaXv9dwBur6qok+wNfT/LFqto00O7SqlrXci2SpB1odQ+hqm6sqqua+3cA\n", 77 | "m4CDhzRNm3VIkuY3tmMISVYDRwCXDywq4KgkVye5IMnh46pJknSftoeMAGiGiz4FvKHZU+h3JbCq\n", 78 | "qrYleR5wHnDYkHWs75ucrarZlsqVpN1SkhlgZqcfX1WLVszQDpK9gM8BF1bVqSO0/x7w5Kq6pW9e\n", 79 | "VdXYh5WSVG8HZuw901W/XTzPGp8u39O+t8ZvodvOts8yCvARYONcYZBkRdOOJEfSC6lbhrWVJLWn\n", 80 | "7SGjZwCvAK5JsqGZ91bg1wCq6gzgxcBJSe4GtgHHtVyTJGmI1oeMFoNDRuPr1936pc0ho+kyUUNG\n", 81 | "kqTdh4EgSQIMBElSw0CQJAEGgiSpYSBIkgADQZLUMBAkSYCBIElqGAiSJGCEQEjyzCHzntFOOZKk\n", 82 | "royyh/D+IfM+sNiFSJK6Nee3nSZ5OnAU8KtJ/gv3/ZvLh+BQkyQtOTv6+uu96W3892x+bvcTel9Z\n", 83 | "LUlaQub9+uskq6vq+vGUM2cNfv31mPr1K4qXNr/+erosdNs5yj/I2SfJXwCr+9pXVR2zE/VJkibU\n", 84 | "KIHwN8DpwIeBXzbzJv+/6kiSFmSUQLirqk5vvRJJUqdGOVvos0lem+SgJAdsv7VemSRprEY5qHw9\n", 85 | "Q4aIqurR8648WQV8HHhEs44/r6rThrQ7DXgesA14VVVtGFjuQeUx9euBv6XNg8rTZdEPKlfV6l2o\n", 86 | "5y7gjVV1VZL9ga8n+WJVbdreIMla4HFVdWiSp9E7XrFmF/qUJO2EeQMhySsZvofw8fkeW1U3Ajc2\n", 87 | "9+9Isgk4GNjU12wdcGbT5vIky5OsqKqto/0KkqTFMMpB5adyXyDsBxwDXElvKGhkSVYDRwCXDyw6\n", 88 | "BNjcN70FWAkYCJI0RqMMGZ3cP51kOfDXC+mkGS76FPCGqrpjWJPBboesY33f5GxVzS6kBo2mN8bc\n", 89 | "jWkaY+7yedbSlWQGmNnpx893UHlIh3sD36yqw0ZsvxfwOeDCqjp1yPIP0dvAn9NMXwsc3T9k5EHl\n", 90 | "pd5vr+/pC4Rpeo2n6/WdFIt+UDnJZ/sm9wAOB84dsZgAHwE2DguDxvnAycA5SdYAt3n8QJLGb5TT\n", 91 | "TmeauwXcDXy/qjbP/Yj7PfaZwN8B13Dfx5K3Ar8GUFVnNO0+ABwL3Am8uqquHFiPewhLut9e39P0\n", 92 | "CXIa31vT9PpOioVuO0caMkrySO47uPzVqrpp50tcOANhqffb63uaNhjT+N6aptd3Uix02znKf0x7\n", 93 | "Kb0zg14CvBT4apKX7HyJkqRJNMqQ0TXAc7fvFST5VeDiqnrCGOrbXoN7CEu6317f0/QJchrfW9P0\n", 94 | "+k6KRd9DoPcO+lHf9M088DRRSdJubpQL074AXJTkk/SC4GXAha1WJUkauzmHjJIcCqyoqsuSvAh4\n", 95 | "RrPoNuCTVXXdmGp0yGjJ99vre5qGFKbxvTVNr++kWLSzjJJ8HnhLVV0zMP8JwHuq6rd2qdIFMBCW\n", 96 | "er+9vqdpgzGN761pen0nxWIeQ1gxGAYAzbx5v/pakrR72VEgLN/Bsn0XuxBJUrd2FAhXJHnN4Mwk\n", 97 | "vw98vb2SJEld2NExhEcCnwH+mfsC4MnAPsC/q6ofjqVCPIaw9Pvt9T1NY8zT+N6aptd3UizqV1c0\n", 98 | "X073bOBf0XsXfauqvrTLVS6QgbDU++31PU0bjGl8b03T6zspWvkuo64ZCEu9317f07TBmMb31jS9\n", 99 | "vpOijSuVJUlTwECQJAEGgiSpYSBIkgADQZLUMBAkSYCBIElqtBoIST6aZGuSb8yxfCbJ7Uk2NLdT\n", 100 | "2qxHkjS3Uf5Bzq74GPB+4OM7aHNpVa1ruQ5J0jxa3UOoqi8Dt87TzKsXJWkCdH0MoYCjklyd5IIk\n", 101 | "h3dcjyRNrbaHjOZzJbCqqrYleR5wHnDYsIZJ1vdNzlbVbPvlSdLuI8kMMLPTj2/7y+2SrAY+W1W/\n", 102 | "MULb7wFPrqpbBub75XZLut9e39P05WfT+N6aptd3UuxWX26XZEXzFdskOZJeQN0yz8MkSS1odcgo\n", 103 | "ydnA0cCBSTYD7wD2AqiqM4AXAycluRvYBhzXZj2SpLn5/xDm6XfadusdMhqPaXxvTdPrOyl2qyEj\n", 104 | "SdLkMBAkSYCBIElqGAiSJMBAkCQ1DARJEmAgSJIaBoIkCTAQJEkNA0GSBBgIkqSGgSBJAgwESVLD\n", 105 | "QJAkAQaCJKlhIEiSAANBktQwECRJgIEgSWq0GghJPppka5Jv7KDNaUm+m+TqJEe0WY8kaW5t7yF8\n", 106 | "DDh2roVJ1gKPq6pDgdcAp7dcjyRpDq0GQlV9Gbh1B03WAWc2bS8HlidZ0WZNkqThlnXc/yHA5r7p\n", 107 | "LcBKYOtgwyTrx1STJE2lrgMBIAPTNbzZ0e+47/7q5tama4DPtNyH+iWZ47XXUjBtr29VDW7bWpdk\n", 108 | "BpjZ2cd3HQg3AKv6plc284aYbb+a+zkLA2HcuthepMN+p42vb9uqapa+jWWSd8zZeIiuTzs9HzgB\n", 109 | "IMka4LaqesBwkSSpfa3uISQ5GzgaODDJZuAdwF4AVXVGVV2QZG2S64A7gVe3WY8kaW6tBkJVHT9C\n", 110 | "m5PbrEGSNJquh4wkSRPCQJAkAQaCJKlhIEiSAANBktQwECRJgIEgSWoYCJIkwECQJDUMBEkSYCBI\n", 111 | "khoGgiQJMBAkSQ0DQZIEGAiSpIaBIEkCDARJUsNAkCQBYwiEJMcmuTbJd5O8ecjymSS3J9nQ3E5p\n", 112 | "uyZJ0gO1+j+Vk+wJfAB4LnAD8LUk51fVpoGml1bVujZrkSTtWNt7CEcC11XV9VV1F3AO8MIh7dJy\n", 113 | "HZKkebQdCIcAm/umtzTz+hVwVJKrk1yQ5PCWa5IkDdHqkBG9jf18rgRWVdW2JM8DzgMOa7csSdKg\n", 114 | "tgPhBmBV3/QqensJ96qqn/bdvzDJB5McUFW33H9V6/vuzzQ3SdJ2SWbYhY1jqkb5EL+TK0+WAd8G\n", 115 | "ngP8APgqcHz/QeUkK4CbqqqSHAmcW1WrB9ZTo+1sLKazgFcw/n6hd0hlmvrtsm/7td92+q2qzo+N\n", 116 | "JqmF1NHqHkJV3Z3kZOAiYE/gI1W1KcmJzfIzgBcDJyW5G9gGHNdmTZKk4VrdQ1gs7iEs9X677Nt+\n", 117 | "7bedfnfHPQSvVJYkAQaCJKlhIEiSAANBktQwECRJgIEgSWoYCJIkwECQJDUMBEkSYCBIkhoGgiQJ\n", 118 | "MBAkSQ0DQZIEGAiSpIaBIEkCDARJUsNAkCQBBoIkqWEgSJKAlgMhybFJrk3y3SRvnqPNac3yq5Mc\n", 119 | "0WY9kqS5tRYISfYEPgAcCxwOHJ/k8QNt1gKPq6pDgdcAp7dVz9Ix23UBE2S26wImyGzXBUyQ2a4L\n", 120 | "2G21uYdwJHBdVV1fVXcB5wAvHGizDjgToKouB5YnWdFiTUvAbNcFTJDZrguYILNdFzBBZrsuYLfV\n", 121 | "ZiAcAmzum97SzJuvzcoWa5IkzWFZi+uuEdtltMcdc/uuFLNwP9wb2G+8fUpSd9oMhBuAVX3Tq+jt\n", 122 | "Aeyozcpm3hCXPGwRa1uAwbyahH7f2VG/bduZvhfjuZjE13hnjPpcLJXfd0f6n4tuft8ko34onhht\n", 123 | "BsIVwKFJVgM/AF4GHD/Q5nzgZOCcJGuA26pq6+CKqqrLrZQkTYXWAqGq7k5yMnARsCfwkaralOTE\n", 124 | "ZvkZVXVBkrVJrgPuBF7dVj2SpB1L1W63VyNJasHEX6k8ysVt0yDJqiSXJPlWkm8meX3XNXUpyZ5J\n", 125 | "NiT5bNe1dCnJ8iSfSrIpycZm6HUqJXlL8/fxjSSfTLJP1zWNS5KPJtma5Bt98w5I8sUk30nyv5Ms\n", 126 | "n289Ex0Io1zcNkXuAt5YVb8OrAFeO8XPBcAbgI2MfjbbUvVnwAVV9XjgCcCmjuvpRHOs8veBJ1XV\n", 127 | "b9Abpj6uy5rG7GP0tpP9/gj4YlUdBlzcTO/QRAcCo13cNhWq6saquqq5fwe9P/yDu62qG0lWAmuB\n", 128 | "D9PtaVGdSvIw4FlV9VHoHberqjGfnj0xfkLvQ9ODkiwDHsScZywuPVX1ZeDWgdn3Xvjb/Pzt+dYz\n", 129 | "6YEwysVtU6f5NHQEcHm3lXTmfcCbgHu6LqRjjwZ+lORjSa5M8hdJHtR1UV2oqluA/wl8n95ZjbdV\n", 130 | "1f/ptqrOreg7a3MrMO+3QEx6IEz7cMADJNkf+BTwhmZPYaokeQFwU1VtYIr3DhrLgCcBH6yqJ9E7\n", 131 | "U2/eYYGlKMljgT8AVtPbc94/ycs7LWqCVO/soXm3p5MeCKNc3DY1kuwFfBr4q6o6r+t6OnIUsC7J\n", 132 | "94CzgWOSfLzjmrqyBdhSVV9rpj9FLyCm0VOAr1TVzVV1N/C39N4r02xrkkcCJDkIuGm+B0x6INx7\n", 133 | "cVuSveld3HZ+xzV1IkmAjwAbq+rUruvpSlW9tapWVdWj6R00/FJVndB1XV2oqhuBzUkOa2Y9F/hW\n", 134 | "hyV16VpgTZL9mr+V59I76WCanQ+8srn/SmDeD5FtXqm8y+a6uK3jsrryDOAVwDVJNjTz3lJVX+iw\n", 135 | "pkkw7cOKrwPOaj4w/T+m9OLOqrq62VO8gt6xpSuBP++2qvFJcjZwNHBgks3A24H/AZyb5PeA64GX\n", 136 | "zrseL0yTJMHkDxlJksbEQJAkAQaCJKlhIEiSAANBktQwECRJgIEgSWoYCJIkwECQdkqSpya5Osk+\n", 137 | "SR7c/NOiw7uuS9oVXqks7aQk7wb2BfYDNlfVn3RckrRLDARpJzXfPnsF8DPg6eUfk3ZzDhlJO+9A\n", 138 | "4MHA/vT2EqTdmnsI0k5Kcj7wSeAxwEFV9bqOS5J2yUR//bU0qZKcAPyiqs5JsgfwlSQzVTXbcWnS\n", 139 | "TnMPQZIEeAxBktQwECRJgIEgSWoYCJIkwECQJDUMBEkSYCBIkhoGgiQJgP8PsMdnP4v/58oAAAAA\n", 140 | "SUVORK5CYII=\n" 141 | ], 142 | "text/plain": [ 143 | "" 144 | ] 145 | }, 146 | "metadata": {}, 147 | "output_type": "display_data" 148 | } 149 | ], 150 | "source": [ 151 | "plt.hist([7,0,1,2,3,7,1,2,3,4,2,7,6,5,2,1,6,8,9,7])\n", 152 | "plt.xlabel('x')\n", 153 | "plt.ylabel('Count')\n", 154 | "plt.title('Bimodal distribution')\n", 155 | "plt.show()" 156 | ] 157 | }, 158 | { 159 | "cell_type": "markdown", 160 | "metadata": {}, 161 | "source": [ 162 | "

Computing measures of central tendency of a dataset in Python

" 163 | ] 164 | }, 165 | { 166 | "cell_type": "code", 167 | "execution_count": 6, 168 | "metadata": { 169 | "collapsed": true 170 | }, 171 | "outputs": [], 172 | "source": [ 173 | "grades = [10, 10, 14, 18, 18, 5, 10, 8, 1, 12, 14, 12, 13, 1, 18]" 174 | ] 175 | }, 176 | { 177 | "cell_type": "code", 178 | "execution_count": 7, 179 | "metadata": { 180 | "collapsed": false 181 | }, 182 | "outputs": [ 183 | { 184 | "data": { 185 | "text/plain": [ 186 | "u'%.3f'" 187 | ] 188 | }, 189 | "execution_count": 7, 190 | "metadata": {}, 191 | "output_type": "execute_result" 192 | } 193 | ], 194 | "source": [ 195 | "%precision 3" 196 | ] 197 | }, 198 | { 199 | "cell_type": "code", 200 | "execution_count": 8, 201 | "metadata": { 202 | "collapsed": false 203 | }, 204 | "outputs": [ 205 | { 206 | "data": { 207 | "text/plain": [ 208 | "10.933" 209 | ] 210 | }, 211 | "execution_count": 8, 212 | "metadata": {}, 213 | "output_type": "execute_result" 214 | } 215 | ], 216 | "source": [ 217 | " np.mean(grades)" 218 | ] 219 | }, 220 | { 221 | "cell_type": "code", 222 | "execution_count": 9, 223 | "metadata": { 224 | "collapsed": false 225 | }, 226 | "outputs": [ 227 | { 228 | "data": { 229 | "text/plain": [ 230 | "12.000" 231 | ] 232 | }, 233 | "execution_count": 9, 234 | "metadata": {}, 235 | "output_type": "execute_result" 236 | } 237 | ], 238 | "source": [ 239 | " np.median(grades)" 240 | ] 241 | }, 242 | { 243 | "cell_type": "code", 244 | "execution_count": 14, 245 | "metadata": { 246 | "collapsed": false 247 | }, 248 | "outputs": [ 249 | { 250 | "data": { 251 | "text/plain": [ 252 | "(array([10]), array([ 3.]))" 253 | ] 254 | }, 255 | "execution_count": 14, 256 | "metadata": {}, 257 | "output_type": "execute_result" 258 | } 259 | ], 260 | "source": [ 261 | "from scipy import stats\n", 262 | "stats.mode(grades)" 263 | ] 264 | }, 265 | { 266 | "cell_type": "code", 267 | "execution_count": 10, 268 | "metadata": { 269 | "collapsed": true 270 | }, 271 | "outputs": [], 272 | "source": [ 273 | "%matplotlib inline" 274 | ] 275 | }, 276 | { 277 | "cell_type": "code", 278 | "execution_count": 12, 279 | "metadata": { 280 | "collapsed": false 281 | }, 282 | "outputs": [ 283 | { 284 | "data": { 285 | "image/png": [ 286 | "iVBORw0KGgoAAAANSUhEUgAAAYQAAAEZCAYAAACXRVJOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", 287 | "AAALEgAACxIB0t1+/AAAGoNJREFUeJzt3Xu0JGV97vHvIwwioBJE8cIgimBExYMi4pURTYJoAKMn\n", 288 | "ohhEXdF4CeryROMtjjnL4/KuRORgogblBFRQMp4MJ+JlI4oCckdQQeUyKOMNcARFYH7nj3o3dPbs\n", 289 | "PdMz7OraM34/a/Waqq63qn+1p7ufrrduqSokSbrL0AVIkhYGA0GSBBgIkqTGQJAkAQaCJKkxECRJ\n", 290 | "gIGgASS5OMlThq5jSEmeneTqJKuSPGqA1//XJP9z0q+rhc1A0LxKckWSp8147vAkp0+PV9Ujqurr\n", 291 | "61jOzklWJ9lU36PvA15ZVXevqgsGeP1qD+l2m+qHTcOZ7y+azOOy7lhoslkfyx3ztQPsBFwyT8vb\n", 292 | "0HXp5W+rjZeBoEn4LwHRtiL2a8N7J/lOkhuSXJvkfa3Z9BbE9a1b5XHpvLXNvzLJsUnuMbLcw5Jc\n", 293 | "meQXI+2mX2dpkhOTfDrJDcCLkjw2ybeSXJfkJ0n+KcmikeWtTvKKJJcl+XWSf0yyS5vn+iQnjLaf\n", 294 | "sY6z1prkrsAqYDPggiSXzTH/nyb5fnudo5KcluSlbdrhSb6Z5ANJfgG8PcmDk3y1rfvPkxyX5J4j\n", 295 | "y9szybltPU4Atpzxes9Kcn77W3wzySNHpr0xyYo27/em/6baBFWVDx/z9gB+DDxtxnOHA6fPaLNf\n", 296 | "G/4WcGgb3gp4XBt+ILAauMvIfC8BLgN2BrYGTgI+1abtTvdF+wRgEfBe4Pcjr7O0jR/YxrcEHg3s\n", 297 | "TffD6IF0v9hfM/J6q4EvANu05d8MfLW9/j2A7wKHzfF3mLPWkWU/eI55twduAA5utR3Ran/JyN/z\n", 298 | "FuBVbfqWwC7A09q6bw+cBnywtd8CuBJ4DV0QPact7x/b9D2BlcBj6bYaDmv/R4uAhwJXAfdtbXea\n", 299 | "q24fG//DLQTNtwAnt1+a1yW5DjiKubuRfg/smmT7qrqpqs4cWc5MhwLvr6orqupG4E3AIa3L5LnA\n", 300 | "sqo6o6puAf5hltc8o6qWAVTV76rq3Ko6q6pWV9WVwMeAfWfM856q+k1VXQJcBJzSXv/XwCl0X6az\n", 301 | "mavWcT5zBwAXV9XJrbYjgWtntPlJVR3Vpv+uqn5YVV+pqluq6hfAB0fWZR9g86r6cFXdVlUnAWeP\n", 302 | "LOtlwDFVdXZ1PkUXfo8HbgXuCjw8yaKquqqqfjTGOmgjZCBovhVwUFX90fQDeCVz91e/FNgNuDTJ\n", 303 | "WUmeuZZl34/ul+60q4DNgR3atBW3F1H1W+CXM+ZfMTqSZLck/zfJT1s30juBe82YZ+XI8G9nGd9m\n", 304 | "A2pdl/vPrHWW8atHR5Ls0LqwVrR1+TR3rMv9gWtmzD9a2wOB188I8R2B+1XVD4HX0m1hrUxyfJL7\n", 305 | "jbEO2ggZCJqEOXdeVtXlVfWCqro38G7gxCR3Y/Ytip/QdcFM24nuF+y1wE/pvsS6F+yWMfPLfeYy\n", 306 | "j6brJnpIVd0TeAvz95mYq9aVs7Zec97RdcnoeDNzXf4XcBvwiLYuf8Ud6/JT4AEz2j9wZPgq4J2j\n", 307 | "IV5V21TVZwCq6viqenKbp+j+n7QJMhA0qCQvTHLvNnoD3RfOauDn7d9dRpofD7yuHZK6Dd2X4AlV\n", 308 | "tZquj/7Pkzw+yRZ0v2jXdRTNNnT7HW5K8sfAK8YpeY7hmdZW67r8B/DIJAcl2ZxuX8F91zHPNsCN\n", 309 | "wK+TPAD4u5Fp3wJuTXJEkkVJ/oJuf8G0fwb+pu3gT5KtkzwzyTZtK2q/tjP8ZuB3dMGjTZCBoElY\n", 310 | "26GofwZcnGQVXb/3IVV1c1XdRNeF883WjbE38Am6rpCvAz8CbgL+FqCqvtuGT6D7hb0K+Bndl9hc\n", 311 | "NfwP4AXAr+n2H5wwo81sNc+cPtd6zVnrWpZNW5dfAv8deA/wC+BhwHfWsS7voNtJfgPwRbqArLa8\n", 312 | "3wN/Qbcz+pfAX7bp0693DvDXwEeAX9HtDD+sTb4r8C66gP4p3Q7rN81VuzZuqern3JQkW9Id6XBX\n", 313 | "uqMc/r2q1ngjJTkSeAbdB+bwqjqvl4L0B6X9Kr+OrjvoynW1X8jajuirgRdU1WlD16NNV29bCFX1\n", 314 | "O+CpVfXfgD2ApyZ50mibJAfQfWB3pTvS4ei+6tGmL8mfJ9kqydZ0ZwJfuLGGQTsPYdvWVfPm9vS3\n", 315 | "h6xJm75eu4zaZj90Wwib0W2OjjoQOLa1PRPYNsk4R2FIszmQ7miaa+j2PRwybDl3yuOBy+m6ap4J\n", 316 | "HFxVN699FunO6a3LCG7f1D2X7sN5dFW9Ycb0LwLvqqoz2viXgTe2Pk1J0gT1vYWwunUZ7Qg8JcmS\n", 317 | "WZrNPFLDC25J0gA2n8SLVNUNSf4D2AuYGpl0DbB4ZHxH1jyBhiSGhCRtgKoa/yKGfV0Tg+7wtG3b\n", 318 | "8N3oDr+beY2bA4DlbXgf4NtzLKv6qvNOrN/SoWuwpo2nLqCg1vF4+xhtNuRBDfl3Gm/d1+exPn+n\n", 319 | "DV/3+fg7zf+69/t/3+cWwv2AY9t+hLsAn66qryR5efuGP6aqlic5IMnldCfVvLjHeiRJa9FbIFTV\n", 320 | "RXQnysx8/pgZ46/uqwZJ0vg8U3nDTQ1dwCymhi5gFlNDFzCHqaELWNOSoQuYzdTQBaxpydAFzGZq\n", 321 | "6ALmQ6+Hnc6XJFXrs2NEWmC6AyOG+qyFIT8/rvuQ37Hrt/5uIUiSAANBktQYCJIkwECQJDUGgiQJ\n", 322 | "MBAkSY2BIEkCDARJUmMgSJIAA0GS1BgIkiTAQJAkNQaCJAkwECRJjYEgSQIMBElSYyBIkgADQZLU\n", 323 | "GAiSJMBAkCQ1BoIkCTAQJEmNgSBJAgwESVJjIEiSAANBktT0FghJFif5WpLvJrk4yRGztFmS5IYk\n", 324 | "57XHW/uqR5K0dpv3uOxbgNdV1flJtgHOSXJqVV06o91pVXVgj3VIksbQ2xZCVV1bVee34d8AlwL3\n", 325 | "n6Vp+qpBkjS+iexDSLIzsCdw5oxJBTwhyQVJlifZfRL1SJLW1GeXEQCtu+hE4DVtS2HUucDiqrop\n", 326 | "yTOAk4Hd+q5JkrSmXgMhySLgJOC4qjp55vSqWjUyfEqSjybZrqp+Ncuylo6MTlXVVA8lS9JGbKo9\n", 327 | "Nkyqar4q+a8LTgIcC/yyql43R5sdgJ9VVSXZG/hsVe08S7uqKvc1aKOVpLoe0kFenSE/P677UOsO\n", 328 | "67v+fW4hPBF4IXBhkvPac28GdgKoqmOA5wKvSHIrcBNwSI/1SJLWorcthPnkFoI2dv5Kdt0HqmC9\n", 329 | "1t8zlSVJgIEgSWoMBEkSYCBIkhoDQZIEGAiSpMZAkCQBBoIkqTEQJEmAgSBJagwESRJgIEiSGgNB\n", 330 | "kgQYCJKkxkCQJAEGgiSpMRAkSYCBIElqDARJEmAgSJIaA0GSBBgIkqTGQJAkAQaCJKkxECRJgIEg\n", 331 | "SWoMBEkSYCBIkhoDQZIE9BgISRYn+VqS7ya5OMkRc7Q7MsllSS5Ismdf9UiS1m7zHpd9C/C6qjo/\n", 332 | "yTbAOUlOrapLpxskOQB4SFXtmuRxwNHAPj3WJEmaQ29bCFV1bVWd34Z/A1wK3H9GswOBY1ubM4Ft\n", 333 | "k+zQV02SpLn1uYVwuyQ7A3sCZ86Y9ADg6pHxFcCOwMoeatgKeMN8L3c9nVFVXxq4BkmaVe+B0LqL\n", 334 | "TgRe07YU1mgyY7zmWM7SkdGpqppaz1LuBoveCm/ebD3nmydnAN84EjAQNHFJZv1caVMz1R4bptdA\n", 335 | "SLIIOAk4rqpOnqXJNcDikfEd23NrqKqld76iLW6BpQMFwvuAbwzz0tLsv7MmZOZvPvVnSXtMe8d6\n", 336 | "zd3nUUYBPg5cUlUfmqPZMuCw1n4f4PqqmvfuIknSuvW5hfBE4IXAhUnOa8+9GdgJoKqOqarlSQ5I\n", 337 | "cjlwI/DiHuuRJK1Fb4FQVd9gjC2Qqnp1XzVIksbnmcqSJMBAkCQ1BoIkCTAQJEmNgSBJAgwESVJj\n", 338 | "IEiSAANBktSsMxCSPHIShUiShjXOFsLRSc5O8sok9+y9IknSIMa5tMSTgEPprkF0bpLjk/xp75VJ\n", 339 | "kiZqrH0IVfUD4K3AG4F9gQ8n+X6S5/RZnCRpcsbZh/CoJB+kuwXmfsCzquphwFOBD/ZcnyRpQsa5\n", 340 | "2umRdPc1eEtV3TT9ZFX9JMlbe6tMkjRR4wTCM4HfVtVtAEk2A7asqhur6lO9VidJmphx9iF8Gbjb\n", 341 | "yPhWwKn9lCNJGso4gbBlVf1meqSqVtGFgiRpEzJOINyY5DHTI0n2An7bX0mSpCGMsw/htcBnk/y0\n", 342 | "jd8PeF5/JUmShrDOQKiqs5M8DHgoUMD3q+qW3iuTJE3UOFsIAHsBD2rtH50EjzCSpE3LOgMhyXHA\n", 343 | "g4HzgdtGJhkIkrQJGWcL4THA7lVVfRcjSRrOOEcZXUy3I1mStAkbZwvh3sAlSc4Cbm7PVVUd2F9Z\n", 344 | "kqRJGycQlrZ/C8jIsCRpEzLOYadTSXYGHlJVX06y1TjzSZI2LuNc/vplwOeAY9pTOwJf6LMoSdLk\n", 345 | "jbNT+VXAk4Bfw+03y7nPOAtP8okkK5NcNMf0JUluSHJee3g5bUkayDhdPzdX1c1Jt/sgyeaMvw/h\n", 346 | "k8A/sfZzFk5zB7UkDW+cLYTTkrwF2CrJn9B1H31xnIVX1enAdetolnVMlyRNwDiB8PfAz4GLgJcD\n", 347 | "y+nurzwfCnhCkguSLE+y+zwtV5K0nsY5yug24GPtMd/OBRZX1U1JngGcDOw2W8MkS0dGp6pqqod6\n", 348 | "JGkjNtUeG2acaxn9eJanq6oevMGvesdCVo0Mn5Lko0m2q6pfzdJ26Z19PUnatC1pj2nvWK+5x9mp\n", 349 | "/NiR4S2B5wL3Wq9XmUOSHYCfVVUl2RvIbGEgSerfOF1Gv5jx1IeSnAu8bV3zJjke2BfYPsnVwNuB\n", 350 | "RW25x9CFyyuS3ArcBByyfuVLkubLOF1Gj+GOw0zvQndvhM3GWXhVPX8d048CjhpnWZKkfo3TZfR+\n", 351 | "7giEW4ErgL/sqyBJ0jDG6TJaMoE6JEkDG6fL6PWseWby7Vc9raoPzHtVkqSJG/eOaY8FltEFwbOA\n", 352 | "s4Ef9FiXJGnCxgmExcCjp88ZSPJ2YHlVHdprZZKkiRrn0hX3AW4ZGb+FMa92KknaeIyzhfAp4Kwk\n", 353 | "n6frMjoYOLbXqiRJEzfOUUbvTPL/6O6JAHB4VZ3Xb1mSpEkbp8sIYCtgVVV9GFiR5EE91iRJGsA4\n", 354 | "t9BcCryB7jLYAFsAx/VYkyRpAONsITwbOAi4EaCqrgHu3mdRkqTJGycQbq6q1dMjSbbusR5J0kDG\n", 355 | "CYTPJTkG2DbJy4CvAP/Sb1mSpElb61FGSQJ8BvhjYBXd3czeVlWnTqA2SdIEjXMewvKqegTwpb6L\n", 356 | "kSQNZ61dRlVVwDntbmaSpE3YOFsI+wAvTHIl7UgjuqzYo7+yJEmTNmcgJNmpqq4C/ozu8teZq60k\n", 357 | "aeO3ti2Efwf2rKorkpxUVc+ZVFGSpMkb99IVD+61CknS4MYNBEnSJm5tXUZ7JFnVhu82MgzdTuV7\n", 358 | "9FiXJGnC5gyEqtpskoVIkoZll5EkCTAQJEmNgSBJAgwESVJjIEiSgJ4DIcknkqxMctFa2hyZ5LIk\n", 359 | "FyTZs896JElz63sL4ZPA/nNNTHIA8JCq2hV4GXB0z/VIkubQayBU1enAdWtpciBwbGt7Jt1d2Xbo\n", 360 | "syZJ0uyG3ofwAODqkfEVwI4D1SJJf9DGuR9C32ZeVrtmbZQsHRmdqqqpvgraVCWZ9W87KVU12CXU\n", 361 | "h153aTKm2mPDDB0I1wCLR8Z3bM+toaqWTqKgTd9Q34sL4XYaQ2bCQlh/bfqWtMe0d6zX3EN3GS0D\n", 362 | "DgNIsg9wfVWtHLYkSfrD1OsWQpLjgX2B7ZNcDbwdWARQVcdU1fIkByS5nO72nC/usx5J0tx6DYSq\n", 363 | "ev4YbV7dZw2SpPEM3WUkSVogDARJEmAgSJIaA0GSBBgIkqTGQJAkAQaCJKkxECRJgIEgSWoMBEkS\n", 364 | "YCBIkhoDQZIEGAiSpMZAkCQBBoIkqTEQJEmAgSBJagwESRJgIEiSGgNBkgQYCJKkxkCQJAEGgiSp\n", 365 | "MRAkSYCBIElqDARJEmAgSJIaA0GSBPQcCEn2T/K9JJcleeMs05ckuSHJee3x1j7rkSTNbfO+Fpxk\n", 366 | "M+AjwNOBa4CzkyyrqktnND2tqg7sqw5J0nj63ELYG7i8qq6oqluAE4CDZmmXHmuQJI2pz0B4AHD1\n", 367 | "yPiK9tyoAp6Q5IIky5Ps3mM9kqS16K3LiO7Lfl3OBRZX1U1JngGcDOzWY02SpDn0GQjXAItHxhfT\n", 368 | "bSXcrqpWjQyfkuSjSbarql/NXFiSpSOjU1U1Nb/lStLGbqo9NkyfgfAdYNckOwM/AZ4HPH+0QZId\n", 369 | "gJ9VVSXZG8hsYQBQVUt7rFWSNgFL2mPaO9Zr7t4CoapuTfJq4D+BzYCPV9WlSV7eph8DPBd4RZJb\n", 370 | "gZuAQ/qqR5K0dn1uIVBVpwCnzHjumJHho4Cj+qxBkjQez1SWJAEGgiSpMRAkSYCBIElqDARJEmAg\n", 371 | "SJIaA0GSBBgIkqTGQJAkAQaCJKkxECRJgIEgSWoMBEkSYCBIkhoDQZIEGAiSpMZAkCQBBoIkqTEQ\n", 372 | "JEmAgSBJagwESRJgIEiSGgNBkgQYCJKkxkCQJAEGgiSpMRAkSYCBIElqeg2EJPsn+V6Sy5K8cY42\n", 373 | "R7bpFyTZs896JElz6y0QkmwGfATYH9gdeH6Sh81ocwDwkKraFXgZcHRf9cy/qaELWEOSJUPXsKap\n", 374 | "oQuYw9TQBcxiaugCZjE1dAGzmBq6gDUszM/e+utzC2Fv4PKquqKqbgFOAA6a0eZA4FiAqjoT2DbJ\n", 375 | "Dj3WNI+mhi5gNkuGLmBNU0MXMIepoQuYxdTQBcxiaugCZjE1dAGzWTJ0AfOhz0B4AHD1yPiK9ty6\n", 376 | "2uzYY02SpDls3uOya8x22cD5NsBvt4D9bpifZf1oS/j678Zvf+VdYXWP6yZJd06q+vmOSrIPsLSq\n", 377 | "9m/jbwJWV9W7R9r8b2Cqqk5o498D9q2qlTOW5RepJG2Aqpr5o3tOfW4hfAfYNcnOwE+A5wHPn9Fm\n", 378 | "GfBq4IQWINfPDANYvxWSJG2Y3gKhqm5N8mrgP4HNgI9X1aVJXt6mH1NVy5MckORy4EbgxX3VI0la\n", 379 | "u966jCRJG5cFfabyOCe2TVqSxUm+luS7SS5OcsTQNU1LslmS85J8cehaAJJsm+TEJJcmuaR1Cw5d\n", 380 | "05va/91FSf4tyV0HqOETSVYmuWjkue2SnJrkB0m+lGTbBVLXe9v/3wVJPp/knkPXNDLt9UlWJ9lu\n", 381 | "IdSU5G/b3+riJO+ea/5J1ZRk7yRnte+Es5M8dl3LWbCBMM6JbQO5BXhdVT0c2Ad41QKpC+A1wCX0\n", 382 | "eqTWevkwsLyqHgbsAVw6ZDFtf9ZfA4+uqkfSdWUeMkApn6R7X4/6e+DUqtoN+Eobn7TZ6voS8PCq\n", 383 | "ehTwA+BNC6AmkiwG/gS4csL1wCw1JXkq3XlVe1TVI4D3DV0T8B7gbVW1J/APbXytFmwgMN6JbRNX\n", 384 | "VddW1flt+Dd0X3L3H7YqSLIjcADwL6x5KO/EtV+ST66qT0C3T6mq5umQ3w32a7pA3yrJ5sBWwDWT\n", 385 | "LqKqTgeum/H07Sdptn8PnmhRzF5XVZ1aVavb6JlM+DyhOf5WAB8A3jDJWqbNUdMrgHe17yqq6ucL\n", 386 | "oKafAtNbdNsyxnt9IQfCOCe2Dar94tyT7oMytA8CfwesXlfDCXkQ8PMkn0xybpJ/TrLVkAVV1a+A\n", 387 | "9wNX0R35dn1VfXnImkbsMHKE3UpgIZ6x/xJg+dBFJDkIWFFVFw5dy4hdgack+XaSqSR7DV0Q3Vbm\n", 388 | "+5NcBbyXMbbuFnIgLJRuj1kl2QY4EXhN21IYspZnAT+rqvNYAFsHzebAo4GPVtWj6Y4iG6Ib5HZJ\n", 389 | "dgFeC+xMt1W3TZJDh6xpNtUd6bGg3v9J3gL8vqr+beA6tgLeDLx99OmByhm1OfBHVbUP3Q+zzw5c\n", 390 | "D8DHgSOqaifgdcAn1jXDQg6Ea4DFI+OL6bYSBpdkEXAScFxVnTx0PcATgAOT/Bg4HtgvyacGrmkF\n", 391 | "3a+4s9v4iXQBMaS9gDOq6pdVdSvwebq/3UKwMsl9AZLcD/jZwPXcLsnhdN2RCyE8d6EL9Ava+31H\n", 392 | "4Jwk9xm0qu79/nmA9p5fneRew5bE3lX1hTZ8Il03/Fot5EC4/cS2JFvQndi2bOCaSBK65L2kqj40\n", 393 | "dD0AVfXmqlpcVQ+i20n61ao6bOCargWuTrJbe+rpwHcHLAnge8A+Se7W/h+fTrcTfiFYBryoDb8I\n", 394 | "WAg/NEiyP90v3oOqaj0u1dKPqrqoqnaoqge19/sKuoMEhg7Qk4H9ANp7fouq+uWwJXF5kn3b8H50\n", 395 | "BwWsXVUt2AfwDOD7wOXAm4aup9X0JLp++vOB89pj/6HrGqlvX2DZ0HW0Wh4FnA1cQPfr6Z4LoKY3\n", 396 | "0AXTRXQ7bxcNUMPxdPswfk+3n+zFwHbAl9uH9kvAtgugrpcAl9EdyTP9Xv/oQDXdPP23mjH9R8B2\n", 397 | "Q9cELAI+3d5X5wBLFsB7ai+6/ZvnA98C9lzXcjwxTZIELOwuI0nSBBkIkiTAQJAkNQaCJAkwECRJ\n", 398 | "jYEgSQIMBAmAJDu0y2H/MMl3kpyRZIMvMJdkaZLXz2eNUt8MBP3Ba2ctn0x3f+9dqmovujO+d5zR\n", 399 | "bn3uMOgJPtroGAhSd1r/zVX1seknquqqqvpIksOTLEvyFeDUJFsn+XKSc5JcmOTA6XmSvCXJ95Oc\n", 400 | "Djx05PldkpzStjy+nuShSAtQb/dUljYiDwfOXcv0PYFHVtX17cZNz66qVUm2p7skwLIkj6G73taj\n", 401 | "6C5jcC7d9bgAPga8vKouT/I44KPA03paF2mDGQjSjO6dJEcBT6S7LsxRdHcyu75NvgvwriRPprum\n", 402 | "1f2T7AA8Gfh8dReA+12SZW1ZW9NdUfVzXc8UAFv0vD7SBjEQpO5id8+ZHqmqV7VLF0//wr9xpO2h\n", 403 | "wPZ0V9i8rV2CeUu6UBm9Lv/08F2A66q7jaG0oLkPQX/wquqrwJZJ/mbk6a3naH4PupsR3dbuo/tA\n", 404 | "ujD4OnBwki2T3B14Vlv2KuDHSZ4L3Q7sJHv0tS7SnWEgSJ2DgX2T/CjJmcC/csc9e0e7lP4PsFeS\n", 405 | "C4G/orunNtXdre4zdJf6Xg6cNTLPocBLk5wPXEx3/2RpwfHy15IkwC0ESVJjIEiSAANBktQYCJIk\n", 406 | "wECQJDUGgiQJMBAkSY2BIEkC4P8DvikYJURGpqkAAAAASUVORK5CYII=\n" 407 | ], 408 | "text/plain": [ 409 | "" 410 | ] 411 | }, 412 | "metadata": {}, 413 | "output_type": "display_data" 414 | } 415 | ], 416 | "source": [ 417 | "plt.hist(grades)\n", 418 | "plt.title('Histogram of grades')\n", 419 | "plt.xlabel('Grade')\n", 420 | "plt.ylabel('Frequency')\n", 421 | "plt.show()" 422 | ] 423 | }, 424 | { 425 | "cell_type": "code", 426 | "execution_count": 22, 427 | "metadata": { 428 | "collapsed": true 429 | }, 430 | "outputs": [], 431 | "source": [ 432 | "%precision 2\n", 433 | "salaries = [17, 23, 14, 16, 19, 22, 15, 18, 18, 93, 95]" 434 | ] 435 | }, 436 | { 437 | "cell_type": "code", 438 | "execution_count": 19, 439 | "metadata": { 440 | "collapsed": false 441 | }, 442 | "outputs": [ 443 | { 444 | "data": { 445 | "text/plain": [ 446 | "31.82" 447 | ] 448 | }, 449 | "execution_count": 19, 450 | "metadata": {}, 451 | "output_type": "execute_result" 452 | } 453 | ], 454 | "source": [ 455 | "np.mean(salaries)" 456 | ] 457 | }, 458 | { 459 | "cell_type": "markdown", 460 | "metadata": {}, 461 | "source": [ 462 | "Bar plot of salaries data" 463 | ] 464 | }, 465 | { 466 | "cell_type": "code", 467 | "execution_count": 20, 468 | "metadata": { 469 | "collapsed": false 470 | }, 471 | "outputs": [ 472 | { 473 | "data": { 474 | "image/png": [ 475 | "iVBORw0KGgoAAAANSUhEUgAAAYYAAAEKCAYAAAAW8vJGAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", 476 | "AAALEgAACxIB0t1+/AAAFbpJREFUeJzt3XuQpXV95/H3xwEvkxGGMcmAgI4xjiABN9QWISYrI+Iu\n", 477 | "qwSoTQrEG14Ss5sLJkvMDtlkQ7RCwbpR3GRdUVGBCIigLChZmSCDbmmJBkRkwImWIxedHhFmGAjK\n", 478 | "7bt/nKeLfnq6D9Mz55ynT/f7VdU157l/z+me53Oe3+/3nJOqQpKkSU/rugBJ0vxiMEiSWgwGSVKL\n", 479 | "wSBJajEYJEktBoMkqcVg0IKUZH2St3Vdx6QkK5N8MckDSd4zwP3u1vNM8q0kLx9UPVoY9ui6AC1c\n", 480 | "STYBPw88DjwKfBn4j1V19wgOX83PQCT5OHBXVf3FLu7i7cCWqtprUDU1dut5VtUvDbAWLRBeMWiY\n", 481 | "Cjiuqp4N7AdMAH+7KztK0tmbmCRLBrCb5wO3D2A/A9Hl66n5z2DQSFTVT4ErgJdMzkvymiQ3J9mW\n", 482 | "5M4kfzll2aokTyR5a5LvA/84036TnJDkG80+vpPk305ZvCrJ/2uabz6f5DlTtvtUkh8m2ZrkhiRT\n", 483 | "6/p4kv+d5JokDwJvBV4H/GmS7Un+zyy1vCzJ15p93pjkVyf3B7xpyvZHz7Dtq5Pc1tR6d5LTm/n7\n", 484 | "JPlski1J7ktydZL9Zzn+C5N8Icm9SX6U5O+T7D1l+aYkf5rkm8D2JEuaea9slifJ2uZ1vDfJJ5Ps\n", 485 | "0yx7ZrO/e5Pc3zy/n5+pDo0/g0HDFoAkS4GTga9MWfYg8Iaq2ht4DfCfkpwwbfuXAwcB/26HHSdH\n", 486 | "ABcApzf7eDnw/SnHfR3wZnrNWU8H/mTK5p8DfhH4OeAm4BPTdn8K8O6qWgZc2Cw/p6qeXVXTayTJ\n", 487 | "imaf5wIrgPcCn0uyT1W9edr2X9jxZeJ84O1NU9MhwOQ6aZY9r/l5GPi7Gbaf9Nf0rs4OBg4Ezpy2\n", 488 | "/LXAvweWV9XjtJuiTgOOp/c67gfcD/yvZtmpwF7AAc3z+92mFi1ABoOGKcCVSe4HtgKvBP7H5MKq\n", 489 | "uqGqbmse3wpcChw1bR9nVtXDzRXHdG8Dzq+q65p9/KCqvj25e+CjVfWdqvoJcBnwr6Yc++NV9VBV\n", 490 | "PQr8FfDSJM+esu8rq+orzbqTx06f5/oa4NtV9YmqeqKqLgXuoHeinfp6zOYR4JAke1XVtqq6uTn2\n", 491 | "fVX1mar6SVU9CJzFjq/R5HP6blVdV1WPVtW9wPumrVvA/6yqe2Z5PX8X+PPmdZx8XX6raUp7BHgO\n", 492 | "8KLqubmqtvd5PhpjBoOGqYATqmof4BnAHwI3JFkJkORXklzfNJNspXdies60fdzVZ/8HAN/ts3zz\n", 493 | "lMcPA8ua4y5JcnbTZLIN+F6zzs9OqbvfcWfyXODOafO+38zfGb8JvBrY1Iw0OrKpdWmS85omn23A\n", 494 | "DcDeSXYImWbk06VNU9Q24CLm9nquAj7TNBXdD2wAHqN3xXUR8Hng0iT3JDnHfoqFy2DQSDTvMj9D\n", 495 | "b4TSrzWzLwauBA6oquXAB9nxb7LfiJu76DUHzdXr6L2Tf2XTBPWCZn6/d/RPNfLnHnodzFM9v5n/\n", 496 | "lKrq61V1Ir2mrSvpXeEAnA6sBo5oaj2qqXOmWs+i9/r+UrPuG5nb63kncGxV7TPlZ2lV/bCqHquq\n", 497 | "d1XVIcDLgOPo9ZtoATIYNGyTfQxp+g/24cnROcuA+6vqkaa/4HXMbejl+cBbkhyd5GlJ9k/y4unH\n", 498 | "nsEy4KfAfUl+ht4JdYeap5kAfqFPLdcAq5OckmSPJCfT6xv57FPUQpI9k7w+yd5Nu/92eif4yVof\n", 499 | "BrY1/Rh/Odt+mnUfAh5oOqjf2WfdmXwQOCvJ85q6fi7J8c3jNUkObZqVttMbfvz47LvSODMYNGxX\n", 500 | "J9kObAPeDbypqiaD4feAdyV5APgL4JPTtu0bElX1NeAt9NrStwLr6XXQzrT91E7WC+k189wDfIte\n", 501 | "h/hs6046H3hJ08zy6RlquY/eu+jTgXvpdXQf18yfbZ9TvQH4XtME9Hbg9c38c4FnNfv8MvAPffbz\n", 502 | "V8Dh9F7rq+mNAptL0L4fuAq4tvmdfAU4olm2L/CpZt8b6L3WF81h3xojGdYX9ST5KL0OuS1VdWgz\n", 503 | "bwW9//zPBzYBJ1XV1mbZGfSGBT4OnFZV1w6lMElSX8O8YvgYcOy0eWuBdVW1GriumaYZQ34yvTHu\n", 504 | "xwIfSOLVjCR1YGgn36r6Er1x0FMdT2/cOc2/JzaPTwAuaYbZbQK+w5OXsJKkERr1u/KVVTXRPJ4A\n", 505 | "VjaPnwtM/fycu4EZ7+6UJA1XZ8011evc6NfBMZzOD0lSX6O+QWUiyb5VtTnJfsCWZv499G7fn3QA\n", 506 | "M4z/TmJYSNIuqKp+9+m0jDoYrqL3mSvnNP9eOWX+xUneS68J6UXAjTPtYC5PbtwkObOqzuy6jmHx\n", 507 | "+Y23hfz8FvJzg7m/qR5aMCS5hN5dmj+b5C7gvwFnA5el98Uim4CTAKpqQ5LLePIW/N+rYY2jlST1\n", 508 | "NbRgqKpTZll0zCzrn8WOd6BKkkbMewXml/VdFzBk67suYMjWd13AkK3vuoAhWt91AfPJ0O58HoYk\n", 509 | "tZD7GCRpGOZ67vSKQZLUYjBIkloMBklSi8EgSWoxGCRJLX5nq6RFr9+dwYtxJKTBIEnAzJ/buegy\n", 510 | "AbApSZI0jcEgSWqxKUnSvDRbu/9ibPMfNYNB0jw2PRvMhFGwKUmS1GIwSJJaDAZJUovBIElqMRgk\n", 511 | "SS0GgySpxWCQJLUYDJKkFoNBktRiMEiSWgwGSVKLwSBJajEYJEktBoMkqcVgkCS1GAySpBaDQZLU\n", 512 | "YjBIkloMBklSi8EgSWoxGCRJLQaDJKnFYJAktXQSDEnOSHJbkluTXJzkGUlWJFmXZGOSa5Ms76I2\n", 513 | "SVrsRh4MSVYBvwMcXlWHAkuA1wJrgXVVtRq4rpmWJI1YF1cMDwCPAkuT7AEsBX4AHA9c0KxzAXBi\n", 514 | "B7VJ0qI38mCoqvuAvwHupBcIW6tqHbCyqiaa1SaAlaOuTZIEe4z6gEleCPwRsArYBnwqyRumrlNV\n", 515 | "laRm2f7MKZPrq2r9cCqVpPGUZA2wZpe3r5rx/Ds0SU4GXlVVv91MvxE4EjgaeEVVbU6yH3B9VR00\n", 516 | "bduqqoy0YEmd6L05nH5+CsM4B8x8rOEdb9Tmeu7soo/hDuDIJM9KEuAYYANwNXBqs86pwJUd1CZJ\n", 517 | "i97Im5Kq6pYkFwJfB54AbgI+BDwbuCzJ24BNwEmjrk2S1EFT0u6wKUlaPGxKGpxxaEqSJM1jBoMk\n", 518 | "qcVgkCS1GAySpBaDQZLUYjBIkloMBklSi8EgSWoxGCRJLQaDJKnFYJAktRgMkqQWg0GS1GIwSJJa\n", 519 | "DAZJUovBIElqMRgkSS0GgySpxWCQJLUYDJKkFoNBktRiMEiSWgwGSVKLwSBJajEYJEktBoMkqcVg\n", 520 | "kCS1GAySpBaDQZLUYjBIkloMBklSi8EgSWoxGCRJLQaDJKnFYJAktXQSDEmWJ7k8ye1JNiT5lSQr\n", 521 | "kqxLsjHJtUmWd1GbJC12XV0xvB+4pqoOBg4D7gDWAuuqajVwXTMtSRqxVNVoD5jsDdxcVb8wbf4d\n", 522 | "wFFVNZFkX2B9VR00bZ2qqoywXEkdSVIw/fwUhnEOmPlYwzveqM313NnFFcMLgB8l+ViSm5J8OMnP\n", 523 | "ACuraqJZZwJY2UFtkrTodREMewCHAx+oqsOBh5jWbFS9y5jRXspIkoDeSXrU7gburqqvNdOXA2cA\n", 524 | "m5PsW1Wbk+wHbJlp4yRnTplcX1Xrh1msJI2bJGuANbu8/aj7GACSfBH47ara2JzolzaLflxV5yRZ\n", 525 | "CyyvqrXTtrOPQVok7GMYnLmeO7sKhpcCHwGeDnwXeAuwBLgMeB6wCTipqrZO285gkBYJg2FwxiIY\n", 526 | "dpXBIC0eBsPgDHVUUnMT2mFzL0uSNC6eMhiS3JBkryQrgH8CPpLkfcMvTZLUhZ25Yti7qh4A/gNw\n", 527 | "YVUdARwz3LIkSV3ZmWBY0gwfPQn4XDNvfDomJElzsjPB8C7g88B3q+rGJC8E/nm4ZUmSuuKoJEnz\n", 528 | "kqOSBmfgo5KSvDjJdUlua6YPS/Lnu1OkJGn+2pmmpA8DfwY80kzfCpwytIokSZ3amWBYWlVfnZxo\n", 529 | "PuDu0eGVJEnq0s4Ew4+S/OLkRJLfAn44vJIkSV3amU9X/QPgQ8BBSX4AfA94/VCrkiR1ZqdHJTVf\n", 530 | "pvO0qto+3JL61uCoJGmRcFTS4Mz13DnrFUOSN1bVRUlOZ8orliT0uhreu3ulSpLmo35NSZPfkbBs\n", 531 | "FIVIkuaHWYOhqs5LsgTY7tWBJC0efUclVdXjeM+CJC0qT9n53HzE9p7AJ4GHJudX1U3DLW3GWux8\n", 532 | "lhYJO58HZ+Df4JZkPTO8YlX1ijlXt5sMBmnxMBgGx6/2lLQgGAyDM7DhqtN2ehzwEuCZk/Oq6l1z\n", 533 | "L0+SNN/tzKernkfvS3pOA9I8fv6Q65IkdWRn+hhurapDk3yzqg5Lsgz4v1X166MpsVWLTUnSImFT\n", 534 | "0uAM/PsYgIebf/8lyf7AY8C+u1KcJGn+25k+hs8m2Qd4D/BPzbwPD68kSVKX5jQqKckzgWdW1dbh\n", 535 | "ldT3+DYlSYuETUmDM8gP0ftNnnylQvuD9KiqT+9ylZKkeatfU9JvMHOETjIYJGkB8gY3SfOSTUmD\n", 536 | "4w1ukqTd4g1ukqQWb3CTNC/ZlDQ43uAmSdotO9PHcPW0G9wK+MhQq5IkdabffQxHAHdV1bub6WXA\n", 537 | "rcAdwLmjKU+SNGr9mpLOA34KkOTlwNnAB4FtzTJJ0gLUrynpaVV1X/P4ZOC8qroCuCLJLcMvTZLU\n", 538 | "hX5XDEuS7Nk8Pga4fsqynbr/oZ8kS5LcnOTqZnpFknVJNia5Nsny3T2GJGnu+gXDJcANSa4C/gX4\n", 539 | "EkCSFwGD+BC9dwAbeHKM2FpgXVWtBq5rpiVJI9b3PoYkv0pvaOq1VfVQM281sKyqbtrlgyYHAB8H\n", 540 | "/hr4z1X1G0nuAI6qqokk+wLrq+qgadt5H4O0SHgfw+AM9CMxquorM8zbuCuFTfM+4J3AXlPmrayq\n", 541 | "iebxBLByAMeRJM3RztzgNlDN5y5tqaqb6X3Exg6qdxkzPp/uJ0kLyG53Iu+ClwHHJ3k1vQ/l2yvJ\n", 542 | "RcBEkn2ranOS/YAtM22c5Mwpk+urav2wC5akcZJkDbBml7fv8mO3kxwF/EnTx/DfgR9X1TlJ1gLL\n", 543 | "q2rttPXtY5AWCfsYBmcYn5U0bJO/jbOBVyXZCBzdTEuSRswv6pE0L3nFMDjjeMUgSZpHDAZJUovB\n", 544 | "IElqMRgkSS0GgySpxWCQJLUYDJKkFoNBktRiMEiSWgwGSVKLwSBJajEYJEktBoMkqcVgkCS1GAyS\n", 545 | "pBaDQZLUYjBIkloMBklSi8EgSWoxGCRJLQaDJKnFYJAktRgMkqQWg0GS1GIwSJJaDAZJUovBIElq\n", 546 | "MRgkSS0GgySpxWCQJLUYDJKkFoNBktRiMEiSWvbouoD5LEnNtqyqMspaJGlUDIanNFM2mAmSFi6b\n", 547 | "kiRJLSMPhiQHJrk+yW1JvpXktGb+iiTrkmxMcm2S5aOuTQtLkprtp+vapPmsiyuGR4E/rqpDgCOB\n", 548 | "309yMLAWWFdVq4HrmmlpN9UMP5L6GXkwVNXmqvpG8/hB4HZgf+B44IJmtQuAE0ddmySp4z6GJKuA\n", 549 | "Xwa+Cqysqolm0QSwsqOyJGlR62xUUpJlwBXAO6pqe/LkSJ+qmrUdOMmZUybXV9X6YdYpSeMmyRpg\n", 550 | "zS5vXzX6NtckewKfBf6hqs5t5t0BrKmqzUn2A66vqoOmbVejvH+gF04zD1f1Pob5z9/feJv59zec\n", 551 | "391C/1uZ67mzi1FJAc4HNkyGQuMq4NTm8anAlaOuTcPlKCFpPIz8iiHJrwNfBL7JkxF9BnAjcBnw\n", 552 | "PGATcFJVbZ22rVcMY2zUr6e/v/HmFcPgzPXc2UlT0q4yGMabwaC5MBgGZ67nTj8SQxpTszXBDetE\n", 553 | "NurjqTsGgzTWdnxHvbCOpy6MXTD4rkWShmvsgsFPO5Wk4RrDYNCg+H0TkmZiMCx6XoFJajMYpAGx\n", 554 | "/0sLhcEgDZSjdjT+/AY3SVKLVwzziJ3BkuYDg2HesTNYUrdsSpIktRgMkqQWg0GS1GIwSJJaDAZJ\n", 555 | "UovBIElqMRgkSS0GgySpxWCQJLUYDJKkFoNBktRiMEiSWgwGSVKLwSBJajEYJEktBoMkqcVgkCS1\n", 556 | "GAySpBaDQZLUYjBIkloMBklSi8EgSWoxGCRJLQaDJKllXgVDkmOT3JHkn5P8l67rkaTFaN4EQ5Il\n", 557 | "wN8BxwIvAU5JcnC3VUnS4jNvggE4AvhOVW2qqkeBS4ETOq5Jkhad+RQM+wN3TZm+u5knSRqh+RQM\n", 558 | "1XUBkiTYo+sCprgHOHDK9IH0rhqmyYwbJxlSsHg8j7d7xxvesTzesI813OPNX6maH885yR7At4FX\n", 559 | "Aj8AbgROqarbOy1MkhaZeXPFUFWPJfkD4PPAEuB8Q0GSRm/eXDFIkuaH+dT53NdCvvktyYFJrk9y\n", 560 | "W5JvJTmt65oGLcmSJDcnubrrWgYtyfIklye5PcmGJEd2XdMgJTmj+du8NcnFSZ7RdU27I8lHk0wk\n", 561 | "uXXKvBVJ1iXZmOTaJMu7rHF3zPL83tP8fd6S5NNJ9u63j7EIhkVw89ujwB9X1SHAkcDvL7DnB/AO\n", 562 | "YAMLc/TZ+4Frqupg4DBgwTSBJlkF/A5weFUdSq+Z97Vd1jQAH6N3LplqLbCuqlYD1zXT42qm53ct\n", 563 | "cEhVvRTYCJzRbwdjEQws8JvfqmpzVX2jefwgvRPLc7utanCSHAC8GvgIsw39GFPNO69/U1UfhV5f\n", 564 | "WVVt67isQXqA3huXpc0AkaX0RhCOrar6EnD/tNnHAxc0jy8AThxpUQM00/OrqnVV9UQz+VXggH77\n", 565 | "GJdgWDQ3vzXv0H6Z3i9voXgf8E7giadacQy9APhRko8luSnJh5Ms7bqoQamq+4C/Ae6kN1pwa1X9\n", 566 | "Y7dVDcXKqppoHk8AK7ssZsjeClzTb4VxCYaF2PywgyTLgMuBdzRXDmMvyXHAlqq6mQV2tdDYAzgc\n", 567 | "+EBVHQ48xHg3Q7QkeSHwR8Aqelexy5K8vtOihqx6I3IW5DknyX8FHqmqi/utNy7BsJM3v42vJHsC\n", 568 | "VwB/X1VXdl3PAL0MOD7J94BLgKOTXNhxTYN0N3B3VX2tmb6cXlAsFP8a+HJV/biqHgM+Te93utBM\n", 569 | "JNkXIMl+wJaO6xm4JG+m16T7lME+LsHwdeBFSVYleTpwMnBVxzUNTJIA5wMbqurcrusZpKr6s6o6\n", 570 | "sKpeQK/T8gtV9aau6xqUqtoM3JVkdTPrGOC2DksatDuAI5M8q/k7PYbeIIKF5irg1ObxqcBCenNG\n", 571 | "kmPpNeeeUFU/ear1xyIYmncqkze/bQA+ucBufvs14A3AK5ohnTc3v8iFaCFeov8h8Ikkt9AblXRW\n", 572 | "x/UMTFXdAlxI783ZN5vZH+quot2X5BLgy8CLk9yV5C3A2cCrkmwEjm6mx9IMz++twN8Cy4B1zfnl\n", 573 | "A3334Q1ukqSpxuKKQZI0OgaDJKnFYJAktRgMkqQWg0GS1GIwSJJaDAZJUovBIElq+f8DbeUYNWQR\n", 574 | "QgAAAABJRU5ErkJggg==\n" 575 | ], 576 | "text/plain": [ 577 | "" 578 | ] 579 | }, 580 | "metadata": {}, 581 | "output_type": "display_data" 582 | } 583 | ], 584 | "source": [ 585 | "fig = plt.figure()\n", 586 | "ax = fig.add_subplot(111)\n", 587 | "ind = np.arange(len(salaries))\n", 588 | "width=0.2\n", 589 | "rects = ax.bar(ind,salaries,width)\n", 590 | "ax.set_ylabel('Salaries')\n", 591 | "ax.set_title('Bar chart of salaries')\n", 592 | "plt.show()" 593 | ] 594 | }, 595 | { 596 | "cell_type": "code", 597 | "execution_count": 23, 598 | "metadata": { 599 | "collapsed": false 600 | }, 601 | "outputs": [ 602 | { 603 | "data": { 604 | "text/plain": [ 605 | "18.00" 606 | ] 607 | }, 608 | "execution_count": 23, 609 | "metadata": {}, 610 | "output_type": "execute_result" 611 | } 612 | ], 613 | "source": [ 614 | "np.median(salaries)" 615 | ] 616 | }, 617 | { 618 | "cell_type": "markdown", 619 | "metadata": {}, 620 | "source": [ 621 | "Improved version" 622 | ] 623 | }, 624 | { 625 | "cell_type": "code", 626 | "execution_count": 24, 627 | "metadata": { 628 | "collapsed": false 629 | }, 630 | "outputs": [ 631 | { 632 | "data": { 633 | "image/png": [ 634 | "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEZCAYAAAB8culNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", 635 | "AAALEgAACxIB0t1+/AAAGjVJREFUeJzt3XmYLXV95/H3xwsqiGyyKIvBIKigUVwAwcBVHAVEmGdC\n", 636 | "RjAaQScuiaPjOC4YHIgmLk8m0YAbKosQFUYNDCgqbpeoqKgssgdUFFAQBK4sKtt3/qhqOberb/fp\n", 637 | "vl1dfS/v1/Oc555azq++fbrv+Zz61a+qUlVIkjTqQUMXIElafAwHSVKH4SBJ6jAcJEkdhoMkqcNw\n", 638 | "kCR1GA5aYyRZluQVQ9cxIcnmSf49yW+S/OM8trtKP2eSi5PsMV/1aM201tAFaM2S5GpgM+Be4G7g\n", 639 | "HODVVXXtAmy+2se8SHICcE1VvX2OTbwS+FVVrT9fNbVW6eesqifOYy1aQ7nnoPlWwH5V9XDgUcAN\n", 640 | "wNFzaSjJYF9ekiyZh2b+CLhsHtqZF0O+n1r9GA7qTVX9HvgcsMPEvCQvSHJ+kuVJfp7kiJFl2yS5\n", 641 | "L8nLk/wM+OpU7SY5IMkFbRtXJXneyOJtknyr7cr5cpJHjLzuM0l+meTWJGcnGa3rhCQfTnJmktuB\n", 642 | "lwMvBt6c5LYk/28lteyW5Pttm+cmeeZEe8Bfjrz+OVO8dt8kl7S1Xpvkje38jZJ8Psmvktyc5Iwk\n", 643 | "W65k+9sm+XqSm5LcmORfk2wwsvzqJG9O8iPgtiRL2nl7tcuT5K3t+3hTklOSbNQue2jb3k1Jbml/\n", 644 | "vs2mqkNrHsNBfQhAknWBFwHfGVl2O/CSqtoAeAHwmiQHTHr9HsDjged3Gk52Bj4BvLFtYw/gZyPb\n", 645 | "fTFwCE3X1oOB/zXy8i8AjwU2Bc4DPjmp+YOBd1bVesCJ7fL3VtXDq2pyjSTZuG3z/cDGwD8DX0iy\n", 646 | "UVUdMun1X+++TRwLvLLtdtoRmFgn7bJHt4/fAh+Y4vUT/oFmL+0JwNbAkZOWHwTsA2xYVfeyYrfU\n", 647 | "64D9ad7HRwG3AB9sl70MWB/Yqv35XtXWogcAw0HzLcBpSW4BbgX2Av7PxMKqOruqLmmfXwScDOw5\n", 648 | "qY0jq+q37Z7HZK8Ajq2qr7Vt/KKqrphoHjiuqq6qqt8B/xd4ysi2T6iqO6rqbuDvgCcnefhI26dV\n", 649 | "1XfadSe2nWl+1hcAV1TVJ6vqvqo6Gbic5sN29P1YmbuAHZOsX1XLq+r8dts3V9WpVfW7qrodeBfd\n", 650 | "92jiZ/pxVX2tqu6uqpuA901at4Cjquq6lbyfrwIOb9/HifflwLZb7S7gEcB21Ti/qm6b5ufRGsRw\n", 651 | "0Hwr4ICq2gh4CPDfgbOTbA6QZJck32i7TG6l+XB6xKQ2rpmm/a2AH0+z/PqR578F1mu3uyTJe9ru\n", 652 | "k+XAT9t1Nhmpe7rtTmUL4OeT5v2snT+OPwP2Ba5uRyDt2ta6bpJj2u6f5cDZwAZJOkHTjog6ue2W\n", 653 | "Wg6cxOzez22AU9tuo1uAS4F7aPa8TgK+DJyc5Lok7/W4xQOH4aDetN82T6UZubR7O/tTwGnAVlW1\n", 654 | "IfARun+H043EuYama2i2XkzzjX6vtjvqMe386b7ZzzQi6Dqag86j/qidP6Oq+kFV/Weabq7TaPZ0\n", 655 | "AN4IbA/s3Na6Z1vnVLW+i+b9fWK77kuZ3fv5c2Dvqtpo5LFuVf2yqu6pqndU1Y7AbsB+NMdR9ABg\n", 656 | "OKgPE8cc0h5P2Ij7R+2sB9xSVXe1xw9ezOyGZR4LHJrkOUkelGTLJI+bvO0prAf8Hrg5ycNoPlQ7\n", 657 | "NU9yA/DH09RyJrB9koOTrJXkRTTHSj4/Qy0kWTvJXyTZoD0OcBvNh/xErb8FlrfHNY5YWTvtuncA\n", 658 | "v2kPWr9pmnWn8hHgXUke3da1aZL92+dLkzyp7WK6jWZo8r0rb0prEsNBfTgjyW3AcuCdwF9W1UQ4\n", 659 | "/DXwjiS/Ad4OnDLptdMGRVV9HziUpm/9VmAZzUHbqV4/euD1RJoun+uAi2kOkq9s3QnHAju0XS7/\n", 660 | "NkUtN9N8m34jcBPNwe/92vkra3PUS4Cftt1BrwT+op3/fmCdts1zgC9O087fAU+lea/PoBkdNpuw\n", 661 | "/RfgdOCs9nfyHWDndtkjgc+0bV9K816fNIu2tRpLXzf7SbI1zX/IzWj+WD9aVUdNsd5RNCMp7gQO\n", 662 | "mTgoJ0kaTp8Hl+4G3lBVFyRZD/hhkq+MfIMkyb7AY6tquyS7AB8Gdu2xJknSGHrrVqqq66vqgvb5\n", 663 | "7TR9zpNHcexPM2adqvoesOHEqBZJ0nAW5JhDkm2AnYDvTVq0JSsOs7uWZqiiJGlAvYdD26X0WeD1\n", 664 | "7R5EZ5VJ0/0cBJEkja3XE1qSrE0zeuJfq+q0KVa5juZ0/wlbMcUY8SQGhiTNQVVNdy7PtC/s5UGz\n", 665 | "R3Ai8L5p1tkXOLN9vivw3ZWsV33VOcPPUFDtY8UaaC7xsOA1zVCvNa3GdVmTNfVQV831tX3uOexO\n", 666 | "M477R0kmhqe+jXZMelUdU1VntlemvIrmRJ5De6xHkjSm3sKhqr7FGMc0quq1fdUgSZobz5Ceu2VD\n", 667 | "FzCFZUMXMIVlQxewEsuGLmAKy4YuYArLhi5gCsuGLmAKy4YuYL71dob0fEpSNdeDKqu43fsHT4Uh\n", 668 | "apCkuVqVz073HCRJHYaDJKnDcJAkdRgOkqQOw0GS1GE4SJI6DAdJUofhIEnqMBwkSR2GgySpw3CQ\n", 669 | "JHUYDpKkDsNBktRhOEiSOgwHSVKH4SBJ6jAcJEkdhoMkqcNwkCR1GA6SpA7DQZLUYThIkjoMB0lS\n", 670 | "h+EgSeowHCRJHYaDJKnDcJAkdRgOkqQOw0GS1GE4SJI6DAdJUofhIEnqMBwkSR2GgySpw3CQJHUY\n", 671 | "DpKkDsNBktRhOEiSOgwHSVKH4SBJ6jAcJEkdhoMkqcNwkCR1GA6SpA7DQZLU0Ws4JDkuyQ1JLlrJ\n", 672 | "8qVJlic5v30c3mc9kqTxrNVz+8cDRwMnTrPO2VW1f891SJJmodc9h6r6JnDLDKulzxokSbM39DGH\n", 673 | "AnZLcmGSM5PsMHA9kiT671aayXnA1lV1Z5J9gNOA7adaMcmRI5PLqmpZ/+VJ0uojyVJg6by0VVXz\n", 674 | "0c7KN5BsA5xRVU8aY92fAk+rqpsnza+qWvDupyTV7NwAhCFqkKS5WpXPzkG7lZJsniTt851pwurm\n", 675 | "GV4mSepZr91KST4N7AlskuQa4AhgbYCqOgY4EHhNknuAO4GD+qxHkjSe3ruV5oPdSpI0e6ttt5Ik\n", 676 | "aXEyHCRJHYaDJKnDcJAkdRgOkqQOw0GS1GE4SJI6DAdJUofhIEnqMBwkSR2GgySpw3CQJHUYDpKk\n", 677 | "DsNBktQxYzgk+cck6ydZO8nXktyU5KULUZwkaRjj7Dk8r6p+A+wHXA1sC7ypz6IkScMaJxwm7ha3\n", 678 | "H/DZqlrO/XfAkSStgca5TegZSS4HfkdzS8/N2ueSpDXUWLcJTbIxsLyq7k3yMODhVXV979Xdv31v\n", 679 | "EypJs9TrbULbMPgb4CPtrC2Ap89lY5Kk1cM4xxyOB+4CdmunfwH8Q28VSZIGN044bFtV76UJCKrq\n", 680 | "jn5LkiQNbZxw+H2SdSYmkmwL/L6/kiRJQxtntNKRwJeArZJ8CtgdOKTHmiRJAxt3tNImwC5AgO9W\n", 681 | "1U19FzZp+45WkqRZ6nu00oOAfYCnVdXngXWT7DyXjUmSVg/jHHP4EPBM4OB2+vZ2niRpDTXOMYdd\n", 682 | "qmqnJOcDVNXNSdbuuS5J0oDG2XO4K8mSiYkkmwL39VeSJGlo44TD0cCpwGZJ3gV8G3h3r1VJkgY1\n", 683 | "7milJwB7tZNfq6rLeq2qu31HK0nSLK3KZ+eM4ZDkn4Fjq+qSuWxgPhgOkjR7vQ5lBS4DPprk3CSv\n", 684 | "TrLBXDYkSVp9jNWtBJDk8TRnRr8Y+Bbwsar6Rn+lrbBt9xwkaZb63nOgHa30eOAJwI3AhcD/THLK\n", 685 | "XDYqSVrcxjnm8D7ghcDXgY9X1bkjy66oqsf1W6J7DpI0F6vy2TnOSXAXAYev5FLdu8xlo5KkxW3c\n", 686 | "oawHAHu0k8uq6oxeq+pu3z0HSZqlvi+89x7gdcAlwKXA65J4EpwkrcHGOeZwEfCUqrq3nV4CXFBV\n", 687 | "T1qA+iZqcM9Bkmap79FKBWw4Mr0h939iSpLWQOMckH43cF6SZe30nsBbe6tIkjS4cQ9IbwE8g2aP\n", 688 | "4dyqur7vwiZt324lSZqlXq6tlORprNh9NLGBAqiq8+aywbkwHCRp9voKh2VMc2yhqp49lw3OheEg\n", 689 | "SbPX61VZFwPDQZJmr9czpJOsA/w18CyaT8pvAh+uqt/NZYOSpMVvnKGsJwI7AEcBHwB2BE4ap/Ek\n", 690 | "xyW5oT1XYmXrHJXkyiQXJtlpnHYlSf0aZyjrjlW1w8j015NcOmb7x9PcZvTEqRYm2Rd4bFVtl2QX\n", 691 | "4MPArmO2LUnqyTh7DucleebERJJdgR+O03hVfRO4ZZpV9gc+0a77PWDDJJuP07YkqT/j7Dk8Hfh2\n", 692 | "kmtojjk8Grii7SqqqvqTVdj+lsA1I9PXAlsBN6xCm3+QZA9g9M51d1fVl+ajbUlak40TDnv3XMPk\n", 693 | "I+lTDp9KcuTI5LKqWjZz0+t/FLbbEta/F+4KfHv9ZO4DjprRSyOFrmQUwOT1puLIJ+mBa6bPiDkP\n", 694 | "P02WAkvn8trJZgyHqro6yUbA1qPrz9NJcNe17U7Yqp03VR1Hzr75JUvgI+s1Oz+/Bjahe17fTNMr\n", 695 | "VDHNsslm066kB577h8nP1+dD+6V52R9aSo6Ya1vjDGV9J829o38C3DeyaD5OgjsdeC1wcnss49aq\n", 696 | "mpcuJUnS3I3TrfQiYNuqumu2jSf5NM2F+jZpj1kcAawNUFXHVNWZSfZNchVwB3DobLchSZp/44TD\n", 697 | "JcBGzOEgcVUdPMY6r51tu5Kkfo0TDu8Czk9yMfD7dl5V1f79lSVJGtI44XAi8B7gYu4/5rD4L8gk\n", 698 | "SZqzccLh9qo6qvdKJEmLxjjh8M0k76YZWTTRrbSg93OQJC2sccLhqTTdSJOvebRg93OQJC2scU6C\n", 699 | "W7oAdUiSFpEZL7yX5JFJjk3ypXZ6hySv6L80SdJQxrkq6wnAWcAW7fSVwBv6KkiSNLxxwmGTqjoF\n", 700 | "uBegqu4G7um1KknSoMYJh9uTPGJior0G0vL+SpIkDW2c0UpvBM4A/jjJOcCmwIG9ViVJGtQ4o5V+\n", 701 | "mGRP4HE015K9Yi4X4ZMkrT7G2XOYOM5wcc+1SJIWiXGOOUiSHmBWGg5Jdm//fejClSNJWgym23OY\n", 702 | "uNjedxaiEEnS4jHdMYd7knwM2DLJUax4Y9Oqqtf1W5okaSjThcN+wF7A84AfMikc+ixKkjSslYZD\n", 703 | "Vd0InJzk8qq6YAFrkiQNbJzRSr9OcmqSG9vH55Js1XtlkqTBjBMOx9Pc6GeL9nFGO0+StIYaJxw2\n", 704 | "rarjq+ru9nECsFnPdUmSBjRut9JLkyxJslaSlwA39V2YJGk444TDy4H/ClwP/BL4c+DQPouSJA1r\n", 705 | "nAvvXQ28sP9SJEmLhddWkiR1GA6SpA7DQZLUMWM4JDl85LlXaJWkB4DpLtn91iS70YxOmnBO/yVJ\n", 706 | "koY23Wily2mC4TFJvgVcBmyS5PFVdfmCVCdJGsR03Uq3AocBPwaW0tzfoYC3JPEeD5K0Bptuz+H5\n", 707 | "wNuBbYF/An4E3FlVngAnSWu4le45VNVhVbUX8FPgJJog2STJt5OcsVAFSpIW3oxnSANfrqofAD9I\n", 708 | "8uqq2j3Jpn0XJkkazoxDWavqzSOTh7TzbuyrIEnS8GZ1ElxVXdhXIZKkxcMzpCVJHYaDJKnDcJAk\n", 709 | "dRgOkqQOw0GS1GE4SJI6DAdJUofhIEnqMBwkSR2GgySpo9dwSLJ3ksuTXJnkLVMsX5pkeZLz28fh\n", 710 | "U7UjSVpY41yVdU6SLAE+ADwXuA74fpLTq+qySaueXVX791WHJGn2+txz2Bm4qqqurqq7gZOBA6ZY\n", 711 | "Lz3WIEmagz7DYUvgmpHpa9t5owrYLcmFSc5MskOP9UiSxtRbtxLNB/9MzgO2rqo7k+wDnAZsP9WK\n", 712 | "SY4cmVxWVctWuUJJWoMkWQosnY+2+gyH64CtR6a3ptl7+IOqum3k+ReTfCjJxlV18+TGqurIvgqV\n", 713 | "pDVB+6V52cR0kiPm2laf3Uo/ALZLsk2SBwMvAk4fXSHJ5knSPt8ZyFTBIElaWL3tOVTVPUleC3wZ\n", 714 | "WAIcW1WXJXlVu/wY4EDgNUnuAe4EDuqrHknS+FI1zqGBYSWpqpr1qKZk4yvhrMfC04FfA5uw4qGQ\n", 715 | "zGK6u2xlNSWpmdqdy88jac2w4mdEf58Pc/3sBM+QliRNwXCQJHUYDpKkDsNBktRhOEiSOgwHSVKH\n", 716 | "4SBJ6jAcJEkdhoMkqcNwkCR1GA6SpA7DQZLUYThIkjoMB0lSh+EgSeowHCRJHYaDJKnDcJAkdRgO\n", 717 | "kqQOw0GS1GE4SJI6DAdJUofhIEnqMBwkSR2GgySpw3CQJHUYDpKkDsNBktRhOEiSOgwHSVKH4SBJ\n", 718 | "6jAcJEkdhoMkqcNwkCR1GA6SpA7DQZLUYThIkjoMB0lSh+EgSeowHCRJHYaDJKnDcJAkdRgOkqQO\n", 719 | "w0GS1GE4SJI6DAdJUkev4ZBk7ySXJ7kyyVtWss5R7fILk+zUZz2SpPH0Fg5JlgAfAPYGdgAOTvKE\n", 720 | "SevsCzy2qrYDXgl8uK96HgiSLB26hskWY02wOOuypvFY08Loc89hZ+Cqqrq6qu4GTgYOmLTO/sAn\n", 721 | "AKrqe8CGSTbvsaY13dKhC5jC0qELWImlQxcwhaVDFzCFpUMXMIWlQxcwhaVDFzDf+gyHLYFrRqav\n", 722 | "befNtM5WPdYkSRrDWj22XWOulzm+bgz33guvvh3WvxfuCrD+/LUtSWuuVM3jZ/Fow8muwJFVtXc7\n", 723 | "fRhwX1W9d2SdjwDLqurkdvpyYM+qumFSW/0UKUlruKqa/AV8LH3uOfwA2C7JNsAvgBcBB09a53Tg\n", 724 | "tcDJbZjcOjkYYO4/nCRpbnoLh6q6J8lrgS8DS4Bjq+qyJK9qlx9TVWcm2TfJVcAdwKF91SNJGl9v\n", 725 | "3UqSpNXXojpDOslxSW5IctHIvI2TfCXJfyQ5K8mGC1zT1km+keSSJBcned0iqeuhSb6X5IIklyZ5\n", 726 | "92Koq61hSZLzk5yxGGpKcnWSH7U1nbtIatowyWeTXNb+/nYZsqYkj2vfn4nH8iSvG/p9ams7rP3/\n", 727 | "d1GSTyV5yNB1JXl9W8/FSV7fzlvQmmb7edm+j1e2JyY/b6b2F1U4AMfTnDQ36q3AV6pqe+Br7fRC\n", 728 | "uht4Q1XtCOwK/E17Mt+gdVXV74BnV9VTgD8Bnp3kWUPX1Xo9cCn3jzwbuqYCllbVTlW18yKp6V+A\n", 729 | "M6vqCTS/v8uHrKmqrmjfn52ApwF3AqcOWRNAe8zyr4CnVtWTaLqoDxqyriRPBP4b8AzgycB+SbYd\n", 730 | "oKaxPy+T7EBz3HeH9jUfSjL9539VLaoHsA1w0cj05cDm7fNHApcPXN9pwHMXU13AusD3gR2Hrovm\n", 731 | "PJWvAs8GzlgMv0Pgp8AjJs0brCZgA+AnU8xfFH9TwPOAby6GmoCNgSuAjWiOkZ4B/KeBf38HAh8f\n", 732 | "mT4cePMQNY37eQkcBrxlZL0vAbtO1/Zi23OYyuZ1/wimG4DBzqBuv8XsBHyPRVBXkgcluaDd/jeq\n", 733 | "6pJFUNf7gDcB943MG7qmAr6a5AdJ/moR1PQY4MYkxyc5L8nHkjxs4JpGHQR8un0+aE1VdTPwT8DP\n", 734 | "aUY93lpVXxm4rouBP227cNYF9qX5UrQYfn8rq2ELmpOMJ0x1UvIKVodw+INqIm+QI+hJ1gM+B7y+\n", 735 | "qm5bDHVV1X3VdCttBeyR5NlD1pVkP+BXVXU+3ZMbB6mptXs13SX70HQL/unANa0FPBX4UFU9lWak\n", 736 | "3gpdEEP9TSV5MPBC4DOTlw1RU9td8z9oviFvAayX5CVD1lVVlwPvBc4CvghcANw7ZE1TGaOGaetb\n", 737 | "HcLhhiSPBEjyKOBXC11AkrVpguGkqjptsdQ1oaqWA1+g6Ssesq7dgP2T/JTmm+dzkpw0cE1U1S/b\n", 738 | "f2+k6UffeeCargWurarvt9OfpQmL6xfB39Q+wA/b9wqG/zt/OnBOVf26qu4B/g14JgO/V1V1XFU9\n", 739 | "var2BG4B/oPh3yumqeE6YOuR9bZq563U6hAOpwMva5+/jKbPf8EkCXAscGlVvX8R1bXJxEiEJOvQ\n", 740 | "9MOeP2RdVfW2qtq6qh5D0zXx9ap66ZA1JVk3ycPb5w+j6U+/aMiaqup64Jok27ezngtcQtOfPtjf\n", 741 | "VOtg7u9SgoH/zmn60HdNsk77f/G5NIMdBn2vkmzW/vto4L8An2L494ppajgdOCjJg5M8BtgOOHfa\n", 742 | "lhbqIM6YB1c+TdOveBfNBfkOpTkg9VWaZD4L2HCBa3oWTf/5BTQfvufTHO0fuq4nAee1df0IeFM7\n", 743 | "f9C6RurbEzh96Jpo+vcvaB8XA4cNXVO7/SfTDCK4kObb8AaLoKaHATcBDx+ZN/jfE83B3ktoQv0T\n", 744 | "wNpD1wX8e1vTBTSjBhf8vZrt5yXwNuAqmsB9/kztexKcJKljdehWkiQtMMNBktRhOEiSOgwHSVKH\n", 745 | "4SBJ6jAcJEkdhoMEJPnb9vLLF7aXrN55mnVPSPJnC1mftND6vE2otFpI8kzgBcBOVXV3ko2Bh0zz\n", 746 | "klldNyfJkqq6d+Y1pcXDPQepubTxTVV1NzRXAq2qXyZ5e5Jz25u6HDPVC5P876nWSbIsyfuSfB/4\n", 747 | "2yQ/SbJWu2z9dnrJQvxw0lwYDlJzmYGtk1yR5INJ9mjnf6Cqdq7mJjPrtFednTBx1dmjV7JOAWtX\n", 748 | "1TOq6h3AMpq9E2iuO/U59ya0mBkOesCrqjtormj7SuBG4JQkL6O5qux3k/wIeA7NXbT+8LL23+nW\n", 749 | "OWXk+cdprn0DcAjNXbykRctjDhLNvTGAs4Gz23vyvprm4oZPq6rrkhwBPHT0NUkeCnxwmnXuGGn/\n", 750 | "nCTbJFkKLKmqS/v9iaRV456DHvCSbJ9ku5FZO9FcubKAX7c3evrzKV46EQTTrTPqROCTwHGrWLLU\n", 751 | "O/ccJFgPOLq9P8Y9wJXAq4BbaS7zfT3NrWFXUFW3JvnYdOtM8ing71nxfgnSouQlu6UFkuRA4IVV\n", 752 | "9bIZV5YG5p6DtACSHA08n+Zm9NKi556DJKnDA9KSpA7DQZLUYThIkjoMB0lSh+EgSeowHCRJHf8f\n", 753 | "mxJlAk7FJ4IAAAAASUVORK5CYII=\n" 754 | ], 755 | "text/plain": [ 756 | "" 757 | ] 758 | }, 759 | "metadata": {}, 760 | "output_type": "display_data" 761 | } 762 | ], 763 | "source": [ 764 | "salaries = [17, 23, 14, 16, 19, 22, 15, 18, 18, 93, 95]\n", 765 | "\n", 766 | "fig = plt.figure()\n", 767 | "ax = fig.add_subplot(111)\n", 768 | "ind = np.arange(len(salaries))\n", 769 | "width = 0.2\n", 770 | "#rects = ax.bar(salaries, ind, width)\n", 771 | "plt.hist(salaries, bins=xrange(min(salaries), max(salaries)).__len__())\n", 772 | "ax.set_xlabel('Salary')\n", 773 | "ax.set_ylabel('# of employees')\n", 774 | "ax.set_title('Bar chart of salaries')\n", 775 | "plt.show()" 776 | ] 777 | }, 778 | { 779 | "cell_type": "code", 780 | "execution_count": 25, 781 | "metadata": { 782 | "collapsed": false 783 | }, 784 | "outputs": [ 785 | { 786 | "data": { 787 | "text/plain": [ 788 | "31.82" 789 | ] 790 | }, 791 | "execution_count": 25, 792 | "metadata": {}, 793 | "output_type": "execute_result" 794 | } 795 | ], 796 | "source": [ 797 | "np.mean(salaries)" 798 | ] 799 | }, 800 | { 801 | "cell_type": "code", 802 | "execution_count": 26, 803 | "metadata": { 804 | "collapsed": false 805 | }, 806 | "outputs": [ 807 | { 808 | "data": { 809 | "text/plain": [ 810 | "18.00" 811 | ] 812 | }, 813 | "execution_count": 26, 814 | "metadata": {}, 815 | "output_type": "execute_result" 816 | } 817 | ], 818 | "source": [ 819 | "np.median(salaries)" 820 | ] 821 | }, 822 | { 823 | "cell_type": "markdown", 824 | "metadata": {}, 825 | "source": [ 826 | "Histogram of the data" 827 | ] 828 | }, 829 | { 830 | "cell_type": "code", 831 | "execution_count": 31, 832 | "metadata": { 833 | "collapsed": false 834 | }, 835 | "outputs": [ 836 | { 837 | "data": { 838 | "image/png": [ 839 | "iVBORw0KGgoAAAANSUhEUgAAAX4AAAEZCAYAAACQK04eAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", 840 | "AAALEgAACxIB0t1+/AAAGHBJREFUeJzt3XuYJXV95/H3hxlwYLhF8bqgg0a8X7iNeG9QERV1s5oN\n", 841 | "Rlc0u+rGRInPxgvemPgkm8ckLhovWaPiqvEWwQsmmACGRnaNggg6wwCiggICjgrDCCID890/qhoO\n", 842 | "bV/O9HSd0zP1fj3PebqqTlX9vuec7s/59a/q1ElVIUnqj53GXYAkabQMfknqGYNfknrG4JeknjH4\n", 843 | "JalnDH5J6hmDX9ssybokTxl3HeOU5HeSXJlkU5LHLNI+VyXZkmRBf6dJnpzkksWoRTsWg19zSnJF\n", 844 | "kqdNW/ayJOdMzVfVI6vqa/PsZ5tCbDvwN8Crq2qPqvrOuIsBqKpzquqh465DS8+O+keoxVPtbbFk\n", 845 | "Efd1506TZV3sd8i2A9wfWD+uGqZLsnzcNWjpMvi1EHd5I2j/KziinV6d5FtJNia5NsnftKtN/Udw\n", 846 | "Qzsc8rg03tpuf12SjyXZc2C/L03yoyQ/G1hvqp01SU5O8okkG4Fjkxya5N+TXJ/kJ0nem2Tngf1t\n", 847 | "SfKHSS5LcmOSdyR5ULvNDUk+M7j+tMc4Y61J7gZsApYB30ly2Szbn9hutzHJd5M8ol3+nCQXtMt/\n", 848 | "nOSE2Z70JC9Psr6t/QdJXjlw30SSq5K8Ick1wEfaZVcOrHO/JKck+WmSHyZ5zcB901+3d81Wh3YA\n", 849 | "VeXN26w34HLgadOWvQw4Z9o6R7TT/w68uJ3eDXhcO/0AYAuw08B2fwBcBqwCVgKnAB9v73s4TaA+\n", 850 | "AdgZ+Gvg1oF21rTzz2vnVwAHAatpOjQPoOmBHzfQ3hbgC8Du7f5/Dfxb2/6ewEXAS2d5HmatdWDf\n", 851 | "D5xl22cC3wL2bOcfAtynnX4q8Ih2+lHAtcDz2/lVg88Z8Gxg/3b6KcBNwIHt/ASwGfjL9vla0S67\n", 852 | "sr1/J+B84K3AcmB/4AfAkXO9bt52zJs9fs0nwBfbXvT1Sa4H3s/swz+3Ag9Osk9V3VxV3xzYz3Qv\n", 853 | "Bt5VVVdU1U3A8cAx7bDNC4FTq+rrVbUZePsMbX69qk4FqKpbqurbVXVuVW2pqh8Bf08TrIP+qqp+\n", 854 | "WVXrgbXAV9r2bwS+Ahw4y+OardZh/oZuBfYAHpZkp6q6tKqubes+u6ouaqfXAp+ZoWba+0+rqsvb\n", 855 | "6a8BpwNPHlhlC3BCVW2uqlumbX4osE9V/XlV3dbu58PAMQM1zvS6aQdk8Gs+RdMD/a2pG/BqZh+r\n", 856 | "/6/AAcDFSc5N8pw59n1f4EcD8z+m6Y3eu73vqjuKqPoV8PNp2181OJPkgCT/lOSadvjnL4B7TNvm\n", 857 | "uoHpX80wv/sCap1TVZ0FvI/mDfO6JB9Mskdb8+OSnNUOv9wAvGqGmqce37OSfCPJz9s34GdPW3dD\n", 858 | "Vd06SxkPAO437Q38eOBe7f1b87ppO2fwayFmPUBbVd+vqt+vqnsC7wROTrIrM/+H8BOa4Ywp9wdu\n", 859 | "oxnuuAbY944Gm31MD8Tp+/w7muGd366qvYC3sHi/47PVet2Ma09TVe+tqkNohpgOAF7f3vUp4IvA\n", 860 | "vlW1N/C/Z6q5PZZwCvBXwL3aN+DTuOtrMddB+CuBywffwKtqz6o6uq1vttdNOyCDX4sqyUuS3LOd\n", 861 | "3UgTRluADe3PBw2s/mngdWlO9dwd+J/AZ6pqC03IPTfJ45PsQjOmP98ZQbvTHBe4OclDgT8cpuRZ\n", 862 | "pqebq9a5G0gOaXv2OwM3A7cAtw/UfH1V3ZpkNfD7zBzgu7S3nwFbkjwLOHK+tgecC2xqD/7ummRZ\n", 863 | "kkcmOaStcbbXTTsgg18LMdcpns8E1iXZBJwIHFNVv66qm2mGXv5fO9SwGjgJ+ATNGT8/pAnF1wC0\n", 864 | "496voRnz/glNoP+U5oDsbDX8KU1w3kgzvv+ZaevMVPP0+2d7XLPWOse+p+zZ1vML4Aqa8P7r9r5X\n", 865 | "A+9IciPwNuCzM9VXVZuA1wL/2O7nRcCX5ngs07e/HTgaeGxb/4a2pqmzqGZ83eZ4TNqOpaq7L2JJ\n", 866 | "8hCaP74pDwTeVlV/21mj2iG1vezraYZxfjTf+pJm12nw36Wh5uyHq4HVVXXlfOtLSZ4LfJVmCOZd\n", 867 | "wKFVdfB4q5K2f6Mc6nk68ANDX1vheTSdhatpjg0cM/fqkoYxyh7/ScC3quoDI2lQkjSjkQR/e1bG\n", 868 | "1cDDq2pD5w1KkmY1qgs5PQs4f3roJxnNvxuStIOpqoVf8HAU14WgObPn2BmW1wL3twr2+SVUdXM7\n", 869 | "Ydr8YTcAzxjFczXHY14zzvataceqaanWZU1D11Tbsn3nB3eTrKQ5sPv5rtuSJM2v86Geai5otU/X\n", 870 | "7UiShuMnd2c0Me4CZjI57gJmMDnuAmYwOe4CZjA57gJmMTnuAmYwOe4CZjA57gIW28hO55yx8aRq\n", 871 | "AQcokqyCfdbBhpWLX9VMHr8RvvG7VXXGaNqTpNktNDun2OOXpJ4x+CWpZwx+SeoZg1+Sesbgl6Se\n", 872 | "MfglqWcMfknqGYNfknrG4JeknjH4JalnDH5J6hmDX5J6xuCXpJ4x+CWpZwx+SeoZg1+Sesbgl6Se\n", 873 | "MfglqWcMfknqGYNfknrG4Jeknuk0+JPsneTkJBcnWZ/ksC7bkyTNb3nH+38PcFpVvTDJcmBlx+1J\n", 874 | "kubRWfAn2Qt4clUdC1BVtwEbu2pPkjScLod69gc2JPlokm8n+VCS3TpsT5I0hC6HepYDBwF/XFXn\n", 875 | "JXk38Cbg7YMrJVkzMDtZVZMd1iRJ250kE8DEYu2vy+C/Criqqs5r50+mCf67qKo1HdYgSdu9tkM8\n", 876 | "OTWf5IRt2V9nQz1VdS1wZZID2kVPBy7qqj1J0nC6PqvnNcAnk+wC/AB4ecftSZLm0WnwV9V3gEO7\n", 877 | "bEOStHX85K4k9YzBL0k9Y/BLUs8Y/JLUMwa/JPWMwS9JPWPwS1LPGPyS1DMGvyT1jMEvST1j8EtS\n", 878 | "zxj8ktQzBr8k9YzBL0k9Y/BLUs8Y/JLUMwa/JPWMwS9JPWPwS1LPGPyS1DMGvyT1jMEvST1j8EtS\n", 879 | "zyzvuoEkVwA3ArcDm6tqdddtSpJm13nwAwVMVNUvRtCWJGkeoxrqyYjakSTNYxTBX8CZSb6V5BUj\n", 880 | "aE+SNIdRDPU8saquSXJP4Iwkl1TVOVN3JlkzsO5kVU2OoCZJ2m4kmQAmFmt/nQd/VV3T/tyQ5AvA\n", 881 | "auCcgfvXdF2DJG3P2g7x5NR8khO2ZX+dDvUk2S3JHu30SuBIYG2XbUqS5tZ1j//ewBeSTLX1yao6\n", 882 | "veM2JUlz6DT4q+py4LFdtiFJ2jp+cleSesbgl6SeMfglqWcMfknqGYNfknrG4JeknjH4JalnDH5J\n", 883 | "6hmDX5J6xuCXpJ4x+CWpZwx+SeoZg1+Sesbgl6SeMfglqWcMfknqGYNfknrG4JeknjH4Jaln5g3+\n", 884 | "JI8aRSGSpNEYpsf/d0nOS/LqJHt1XpEkqVPzBn9VPQl4MXB/4NtJPp3kyM4rkyR1Yqgx/qr6HvBW\n", 885 | "4I3AU4H3JLk0yQu6LE6StPiGGeN/TJITgYuBI4Cjq+phwOHAiUNsvyzJBUm+vM3VSpK22fIh1vlb\n", 886 | "4CPAW6rq5qmFVfWTJG8dYvvjgPXAHgsrUZK0mIYZ6nkO8Mmp0G978CsBqurjc22YZF/g2cCHgWxj\n", 887 | "rZKkRTBM8J8J7DowvxtwxpD7PxF4PbBlK+uSJHVkmKGeFVX1y6mZqtqUZLf5NkpyNPDTqrogycQc\n", 888 | "660ZmJ2sqskhapKk3mgzdGKx9jdM8N+U5OCqOr8t4BDgV0Ns9wTgeUmeDawA9kzy8ap66eBKVbVm\n", 889 | "K2uWpF5pO8STU/NJTtiW/Q0T/H8C/GOSa9r5+wK/N99GVfVm4M0ASZ4K/On00Jckjd68wV9V5yV5\n", 890 | "GPAQoIBLq2rzAtqqBWwjSVpkw/T4AQ4B9m/XPyjJvGf0DKqqs4GzF1CfJGmRzRv8Sf4BeCBwIXD7\n", 891 | "wF1DB78kaekYpsd/MPDwqnKoRpJ2AMOcx7+O5oCuJGkHMEyP/57A+iTnAr9ul1VVPa+7siRJXRkm\n", 892 | "+Ne0P4s7L7vgsI8kbaeGOZ1zMskq4Ler6sz2U7vDng0kSVpihrks8yuBzwEfbBftC3yhy6IkSd0Z\n", 893 | "5uDuHwFPAm6EO76U5V5dFiVJ6s4wwf/rqpo6qEuS5TjGL0nbrWGC/+wkbwF2S/IMmmEfv01LkrZT\n", 894 | "wwT/m4ANwFrgVcBpNN+/K0naDg1zVs/twN+3N0nSdm6Ya/VcPsPiqqoHdlCPJKljw5yPf+jA9Arg\n", 895 | "hcA9uilHktS1ecf4q+pnA7erqurdNF/ALknaDg0z1HMwd56+uRPNtfmXdVmUJKk7wwz1vIs7g/82\n", 896 | "4ArgP3dVkCSpW8Oc1TMxgjokSSMyzFDP/+A3P6l7x1U6q+p/LXpVkqTODPsNXIcCp9IE/tHAecD3\n", 897 | "OqxLktSRYYJ/P+CgqtoEkOQE4LSqenGnlUmSOjHMJRvuBWwemN+MV+eUpO3WMD3+jwPnJvk8zVDP\n", 898 | "fwQ+1mlVkqTODHNWz18k+Reaa/IDvKyqLhhm50lWAGcDdwN2Ab5UVccvtFhJ0rYbZqgHYDdgU1W9\n", 899 | "B7gqyf7DbFRVtwCHV9VjgUcDhyd50jybSZI6NMxXL64B3kBzeWZoeu7/MGwDVXXzwHbLgF9sXYmS\n", 900 | "pMU0TI//d4DnAzcBVNXVwB7DNpBkpyQXAtcBZ1XV+oUUKklaHMMc3P11VW1Jms9sJVm5NQ1U1Rbg\n", 901 | "sUn2Av41yURVTU7d3/5HMWVy8D5JEiSZACYWa3/DBP/nknwQ2DvJK4E/AD68tQ1V1cYk/0xzkbfJ\n", 902 | "geVrtnZfktQnbYd4cmq+/TzVgs0Z/Gm6+Z8FHgpsAg4A3lZVZwyz8yT7ALdV1Q1JdgWeAfzZthQs\n", 903 | "Sdo2w/T4T6uqRwKnL2D/9wU+lmQnmuMJn6iqry5gP5KkRTJn8FdVJTk/yeqqOndrd15Va4GDFlyd\n", 904 | "JGnRDdPjPwx4SZIf0Z7ZQ/Oe8OjuypIkdWXW4E9y/6r6MfBMmssyZ7Z1JUnbj7l6/F8CDqyqK5Kc\n", 905 | "UlUvGFVRkqTuDHvJhgd2WoUkaWSGDX5J0g5irqGeRyfZ1E7vOjANzcHdPTusS5LUkVmDv6qWjbIQ\n", 906 | "SdJoONQjST1j8EtSzxj8ktQzBr8k9YzBL0k9Y/BLUs8Y/JLUMwa/JPWMwS9JPWPwS1LPGPyS1DMG\n", 907 | "vyT1jMEvST1j8EtSzxj8ktQzBr8k9UynwZ9kvyRnJbkoybokr+2yPUnS/Ob66sXFsBl4XVVdmGR3\n", 908 | "4PwkZ1TVxR23K0maRac9/qq6tqoubKd/CVwM3K/LNiVJcxvZGH+SVcCBwDdH1aYk6Td1PdQDQDvM\n", 909 | "czJwXNvzH7xvzcDsZFVNjqKmBTg9ycgaq6rRNSb1VJIadZsL+dtOMgFMLFYNqer2cSfZGfgn4CtV\n", 910 | "9e5p99UCn4RVsM862LBycaqcz+M3wjf2glH9jsTgl0agCf5RZv/i/G0vNDundH1WT4CPAOunh74k\n", 911 | "aTy6HuN/IvAS4PAkF7S3ozpuU5I0h07H+Kvq/+KHxCRpSTGUJalnDH5J6hmDX5J6xuCXpJ4x+CWp\n", 912 | "Zwx+SeoZg1+Sesbgl6SeMfglqWcMfknqGYNfknrG4JeknjH4JalnDH5J6hmDX5J6xuCXpJ4x+CWp\n", 913 | "Zwx+SeoZg1+Sesbgl6SeMfglqWcMfknqGYNfknqm0+BPclKS65Ks7bIdSdLwuu7xfxQ4quM2JElb\n", 914 | "odPgr6pzgOu7bEOStHUc45eknlk+7gKSrBmYnayqyTGVIklLUpIJYGKx9jf24K+qNeOuQZKWsrZD\n", 915 | "PDk1n+SEbdmfQz2S1DNdn875aeDrwAFJrkzy8i7bkyTNr9Ohnqp6UZf7lyRtPYd6JKlnDH5J6hmD\n", 916 | "X5J6xuCXpJ4x+CWpZwx+SeoZg1+Sesbgl6SeMfglqWcMfknqGYNfknrG4JeknjH4JalnDH5J6hmD\n", 917 | "X5J6xuCXpJ4x+CWpZwx+SeoZg1+Sesbgl6SeMfglqWcMfknqmU6DP8lRSS5JclmSN3bZliRpOJ0F\n", 918 | "f5JlwPuAo4CHAy9K8rCu2ltck+Mu4DckmRh3DdNZ03CWYk2wNOtaijUtxTzYVl32+FcD36+qK6pq\n", 919 | "M/AZ4PkdtreIJsddwEwmxl3ADCbGXcAMJsZdwAwmxl3ALCbGXcAMJsZdwG+aHHcBi67L4P8PwJUD\n", 920 | "81e1yyRJY7S8w31Xh/sGbrgbHLGxm33/cAV87ZY759et6KYdSRq9VHWTz0kOA9ZU1VHt/PHAlqp6\n", 921 | "58A6Hb85SNKOqaqy0G27DP7lwKXA04CfAOcCL6qqiztpUJI0lM6GeqrqtiR/DPwrsAz4iKEvSePX\n", 922 | "WY9fkrQ0jeyTu0lOSnJdkrUDy+6e5Iwk30tyepK9R1VP2/5+Sc5KclGSdUleO+66kqxI8s0kFyZZ\n", 923 | "n+Qvx13TQG3LklyQ5MtLqKYrkny3revcpVBXkr2TnJzk4vY1fNyYf6ce0j4/U7eNSV67BJ6n49u/\n", 924 | "vbVJPpXkbkugpuPaetYlOa5dNvKatjYv2+fysvYDs0fOt/9RXrLhozQf5hr0JuCMqjoA+Go7P0qb\n", 925 | "gddV1SOAw4A/aj9kNra6quoW4PCqeizwaODwJE8aZ00DjgPWc+cZW0uhpgImqurAqlq9ROp6D3Ba\n", 926 | "VT2M5jW8ZJw1VdWl7fNzIHAwcDPwhXHWlGQV8ArgoKp6FM1w8DFjrumRwH8DDgUeAxyd5EFjqmno\n", 927 | "vEzycOD3aD4oexTwgSRzZ3tVjewGrALWDsxfAty7nb4PcMko65mhvi8CT18qdQG7AecBjxh3TcC+\n", 928 | "wJnA4cCXl8rrB1wO3GPasrHVBewF/HCG5WN/rtq2jwTOGXdNwN1pTv74LZpjjV8GnjHmml4IfHhg\n", 929 | "/q3AG8ZV07B5CRwPvHFgvX8BDptr3+O+SNu9q+q6dvo64N7jKqTtgRwIfJMx15VkpyQXtm2fVVUX\n", 930 | "jbsm4ETg9cCWgWXjrgmaHv+ZSb6V5BVLoK79gQ1JPprk20k+lGTlmGsadAzw6XZ6bDVV1S+AdwE/\n", 931 | "pjnr74aqOmOcNQHrgCe3Qyq7Ac+m6fAslddutjruR/MB2Snzflh23MF/h2reqsZypDnJ7sApwHFV\n", 932 | "tWncdVXVlmqGevYFnpLk8HHWlORo4KdVdQEw47nDY3z9nljNEMazaIbqnjzmupYDBwEfqKqDgJuY\n", 933 | "NjQwrucqyS7Ac4HPTb9vDL9TDwL+hKZXez9g9yQvGWdNVXUJ8E7gdOArwIXA7eOsaTZD1DFnjeMO\n", 934 | "/uuS3AcgyX2Bn466gCQ704T+J6rqi0ulLoCq2gj8M8247DhregLwvCSX0/QWj0jyiTHXBEBVXdP+\n", 935 | "3EAzbr16zHVdBVxVVee18yfTvBFcO+7niubN8fz2uYLxPk+HAF+vqp9X1W3A54HHM+bnqapOqqpD\n", 936 | "quqpwPXA91gCv+et2eq4GthvYL1922WzGnfwnwoc204fSzPGPjJJAnwEWF9V714KdSXZZ+pofZJd\n", 937 | "acY9LxhnTVX15qrar6r2pxkq+Leq+i/jrAkgyW5J9minV9KMX68dZ11VdS1wZZID2kVPBy6iGcMe\n", 938 | "23PVehF3DvPAeF+/S4DDkuza/h0+nebEgbE+T0nu1f68P/CfgE8x5t/zAbPVcSpwTJJdkuwPPJjm\n", 939 | "A7OzG+GBk0/TjOXdSnPxtpfTHOA5k+Zd9XRg71HV09b0JJox6wtpwvUCmqPiY6sLeBTw7bam7wKv\n", 940 | "b5eP9bkaqO+pwKlLoSaa8fQL29s64PglUtdjaA7Kf4emJ7vXEqhpJfAzYI+BZeOu6Q00b4prgY8B\n", 941 | "Oy+Bmr7W1nQhzdl1Y3metjYvgTcD36d5Q33mfPv3A1yS1DPjHuqRJI2YwS9JPWPwS1LPGPyS1DMG\n", 942 | "vyT1jMEvST1j8GuHl+Qt7WV2v9Nelnj1HOv+nyQvGGV90qh1+WXr0tgleTzwHODAqtqc5O7A3ebY\n", 943 | "ZKuuxZJkWVXdPv+a0tJhj187uvsAP6uqzdBcFbKqrknytiTntl+68cGZNkzy9pnWSTKZ5MQk5wFv\n", 944 | "SfLDNN8xTZI92/llo3hw0kIY/NrRnQ7sl+TSJO9P8pR2+fuqanU1XwKya3sF0ilTVyB97yzrFLBz\n", 945 | "VR1aVe8AJmn+q4DmWkan+F+AljKDXzu0qrqJ5uqmrwQ2AJ9NcizNFUa/keS7wBE03150x2btz7nW\n", 946 | "+ezA9IdprqUC8DKab0+SlizH+LXDq6otwNnA2e13mP53movhHVxVVyc5AVgxuE2SFcD751jnpoH9\n", 947 | "fz3JqiQTwLKqWt/tI5K2jT1+7dCSHJDkwQOLDqS5gmEBP2+/hOd3Z9h0KuTnWmfQx4FPAidtY8lS\n", 948 | "5+zxa0e3O/De9jsObgMuA14F3EBzKedrab5u8y6q6oYkH5prnWk+Bfw5d73evbQkeVlmaREkeSHw\n", 949 | "3Ko6dt6VpTGzxy9toyTvBZ5J8+Xc0pJnj1+SesaDu5LUMwa/JPWMwS9JPWPwS1LPGPyS1DMGvyT1\n", 950 | "zP8H52pExupoZh0AAAAASUVORK5CYII=\n" 951 | ], 952 | "text/plain": [ 953 | "" 954 | ] 955 | }, 956 | "metadata": {}, 957 | "output_type": "display_data" 958 | } 959 | ], 960 | "source": [ 961 | "plt.hist(salaries, bins=len(salaries))\n", 962 | "plt.title('Histogram of salaries')\n", 963 | "plt.xlabel('Salary')\n", 964 | "plt.ylabel('Frequency')\n", 965 | "plt.show()" 966 | ] 967 | }, 968 | { 969 | "cell_type": "markdown", 970 | "metadata": {}, 971 | "source": [ 972 | "

Measures of Dispersion

" 973 | ] 974 | }, 975 | { 976 | "cell_type": "markdown", 977 | "metadata": {}, 978 | "source": [ 979 | "

Quartiles

" 980 | ] 981 | }, 982 | { 983 | "cell_type": "code", 984 | "execution_count": 13, 985 | "metadata": { 986 | "collapsed": false 987 | }, 988 | "outputs": [ 989 | { 990 | "data": { 991 | "text/plain": [ 992 | "[14, 45, 77, 71, 73, 43, 80, 53, 8, 46, 4, 94, 95, 33, 31, 77, 20, 18, 19, 35]" 993 | ] 994 | }, 995 | "execution_count": 13, 996 | "metadata": {}, 997 | "output_type": "execute_result" 998 | } 999 | ], 1000 | "source": [ 1001 | "import random\n", 1002 | "random.seed(100)\n", 1003 | "testScores = [random.randint(0,100) for p in xrange(0,20)]\n", 1004 | "testScores" 1005 | ] 1006 | }, 1007 | { 1008 | "cell_type": "code", 1009 | "execution_count": 14, 1010 | "metadata": { 1011 | "collapsed": false 1012 | }, 1013 | "outputs": [], 1014 | "source": [ 1015 | "sortedScores = np.sort(testScores)" 1016 | ] 1017 | }, 1018 | { 1019 | "cell_type": "code", 1020 | "execution_count": 15, 1021 | "metadata": { 1022 | "collapsed": false 1023 | }, 1024 | "outputs": [ 1025 | { 1026 | "data": { 1027 | "text/plain": [ 1028 | "{1: 4,\n", 1029 | " 2: 8,\n", 1030 | " 3: 14,\n", 1031 | " 4: 18,\n", 1032 | " 5: 19,\n", 1033 | " 6: 20,\n", 1034 | " 7: 31,\n", 1035 | " 8: 33,\n", 1036 | " 9: 35,\n", 1037 | " 10: 43,\n", 1038 | " 11: 45,\n", 1039 | " 12: 46,\n", 1040 | " 13: 53,\n", 1041 | " 14: 71,\n", 1042 | " 15: 73,\n", 1043 | " 16: 77,\n", 1044 | " 17: 77,\n", 1045 | " 18: 80,\n", 1046 | " 19: 94,\n", 1047 | " 20: 95}" 1048 | ] 1049 | }, 1050 | "execution_count": 15, 1051 | "metadata": {}, 1052 | "output_type": "execute_result" 1053 | } 1054 | ], 1055 | "source": [ 1056 | "rankedScores = {i+1: sortedScores[i] for i in range(len(sortedScores))}\n", 1057 | "rankedScores" 1058 | ] 1059 | }, 1060 | { 1061 | "cell_type": "code", 1062 | "execution_count": 46, 1063 | "metadata": { 1064 | "collapsed": false, 1065 | "scrolled": true 1066 | }, 1067 | "outputs": [ 1068 | { 1069 | "data": { 1070 | "image/png": [ 1071 | "iVBORw0KGgoAAAANSUhEUgAAAYcAAAEZCAYAAAB8culNAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n", 1072 | "AAALEgAACxIB0t1+/AAAGK5JREFUeJzt3XuUZWV95vHvAw0CIkFCgki3oAKOOJrBGMRLQouXIIzN\n", 1073 | "ZKIRL1HQCY6R6DC5eRvpyUySlYxGBxTTSZSFugbGwQm2TjOKhiJMTFqRq1wUNCAXaVBobi1K07/5\n", 1074 | "Y++iD7Wrqk9X1a5TXfX9rFWrz97nPe/+nV1d5zn73bdUFZIkDdpp1AVIkhYew0GS1GE4SJI6DAdJ\n", 1075 | "UofhIEnqMBwkSR2Gg0YiybeS/Mqo6xilJL+W5JYk9yf5hVHXIw0yHDTnktyU5KUT5p2Y5JLx6ar6\n", 1076 | "l1X199vo56AkW5Is1v+nHwR+u6qeUFVXjroYadBi/aPTaFX7M1cyh31t7TTZuY9+h1x2gKcA145o\n", 1077 | "+ctGsVztOAwHzZfHhEW7dXF0+/iIJJcmuTfJHUk+2DYb37LY2A69PD+N97ev35Dk7CR7DfT7piQ3\n", 1078 | "J/nhQLvx5axOcl6STye5F3hzkl9K8o9J7klye5Izkuwy0N+WJG9PckOS+5L8UZKnt6/ZmOTcwfYT\n", 1079 | "3uOktSZ5HHA/sDNwZZIbpnj9h9vX3ZvkqiTPaufvnuRDbb8bk1ySZLf2uVVJrmnfz0VJ/sWEdf4H\n", 1080 | "Sa4C7k+yU5Ijk3ytbX9FkqMG2p+Y5Lvt+/5ektcP9ZvW4lBV/vgzpz/APwMvnTDvROCSCW2Obh//\n", 1081 | "I/CG9vEewPPbxwcCW4CdBl73FuAG4CDg8cDngE+1zx1G86H7QmAX4L8BPx1Yzup2elU7vRvwXOAI\n", 1082 | "mi9KB9J8k3/XwPK2AH8L7Nn2/xPg79rl7wVcA7xpivUwZa0DfT9titf+KnApsFc7/QzgSe3jj7U1\n", 1083 | "7N/WfSSwK3Ao8ADwUprg+f12+cva190EXAYcADyu/feHwDHt8y9rp3+2rfde4JD2uf2Aw0b9f8uf\n", 1084 | "+ftxy0F9CHB++230niT30HygTTXU9FPgkCT7VtWmqlo/0M9EbwA+VFU3VdWDwHuAE9oholcDa6vq\n", 1085 | "a1X1MPCBSZb5tapaC1BVD1XVZVX19araUlU3A38FHDXhNX9eVQ9U1bXA1cAF7fLvAy4ADp/ifU1V\n", 1086 | "6zB/dz8FngA8M8lOVfXtqrqjfe1JNAH2g7buf6qqnwKvBb5YVV+tqkdo9mnsThOWtOvi9Kq6rap+\n", 1087 | "ArwRWFdV/7ddH1+hCaTj2rZbgGcn2b2qNrTvX0uE4aA+FHB8VT1x/Af4babed/BWmm+91yX5epLj\n", 1088 | "pul7f+DmgenvA8tovtnuD9z6aBFVPwZ+NOH1tw5OJDk0yReT/KAdavpjmm/OgzYMPP7xJNN7zqDW\n", 1089 | "aVXVRcBHaUJ1Q5I1SZ4A7EuzxfPdKZb3/YE+CriFZgth3C0Djw8EXjMhxF9Es4WyiSZs/j1we7uO\n", 1090 | "nrGturV4GA6aL1PuVK6qG6vq9VX1c8CfAecl2Z3JtzRupxmmGfcUYDNwB/ADYPmjC2z6mPhBP7HP\n", 1091 | "j9MMJR1cVT8DvI+5+7uYqtYNk7aeoKrOqKrn0QxnHUozTHQX8BBw8BTLO3B8ot3pvQK4bbDbgcff\n", 1092 | "Bz49GOLVHDn15+3yv1xVrwCeBFwP/PUwdWtxMBw0cknemOTn2sl72TqkcVf779MHmp8DnNoe5ron\n", 1093 | "8CfAuVW1hWZM/1VJXpBkV5p9DNs60mlPmv0Um9qdt28fpuQpHk80Xa3TLyB5XrsDfhdgE00gPNJu\n", 1094 | "DXwS+Isk+yfZeeD9fhY4LsnR7et+t33d16ZYzGdo1tcr2n52S7IyyQFJfj7J8UkeDzwMPAg8sq26\n", 1095 | "tXgYDpov0x3e+qvAt5LcD3wYOKGqftIObfwx8A/tsMcRNB+Mn6Y5kul7NB+cvwNQVde0j8+l+RZ9\n", 1096 | "P3AnzU7kqWr4PeD1wH00+xvOndBmsponPj/V+5qy1mn6HrdXW8/dNDuSf0izg3285quBb9AMm/0p\n", 1097 | "zU7779DsRziDJliPA15VVZsnW0BV3QocD7yXZj19nyZQQvPZcCrNVsePgF9muODUIpHmi0gPHTeH\n", 1098 | "1l1Mc1TErsDnq+o9k7Q7HXglzR/OiVV1eS8Faclpv63fQzNkdPO22kvaqrcth6p6CHhJVf0r4DnA\n", 1099 | "S5K8eLBNkmNp/nAPAU6mGf+VZizJq5Ls0Q6HfBC4ymCQtl+vw0rtsAA0Ww4702wiD1oFnN22XQ/s\n", 1100 | "nWSbR3JI01hFMxRyG82+ihNGW460Y+o1HNozMK+gOTrjokmOkz6Axx5adysDR5tI26uqfqs96mbv\n", 1101 | "qnp5VU169rGk6fW95bClHVZaDvxKkpWTNJt4tEc/O0EkSUObl4tvVdW9Sf4P8DxgbOCp22iOwx63\n", 1102 | "nMcekw1AEgNDkmagqmZ04crewiHJvsDmqtrYnoz0cuA/T2i2FjgFODfJkcDGqpr0BKGZvsHFJsnq\n", 1103 | "qlo96joWgunWRfOFYrbfKbLD/L9bjP8vZv47XM34KS47yu+vL7P5Yt3nlsP+wNnttWB2ojkT86tJ\n", 1104 | "3gZQVWuqal2SY5PcSHOSzUk91iNJGlJv4VBVV9Nc8XLi/DUTpk/pqwZJ0sx4hvSOZ2zUBSwgY6Mu\n", 1105 | "YAEZG3UBC8fKURewKPR2hvRcSlJLfexQ22ep7XNYjGb/O/T3N5vPTrccJEkdhoMkqcNwkCR1GA6S\n", 1106 | "pA7DQZLUYThIkjoMB0lSh+EgSeowHCRJHYaDJKnDcJAkdRgOkqQOw0GS1GE4SJI6DAdJUofhIEnq\n", 1107 | "MBwkSR2GgySpw3CQJHUYDpKkDsNBktRhOEiSOgwHSVKH4SBJ6jAcJEkdhoMkqaO3cEiyIslFSa5J\n", 1108 | "8q0k75ykzcok9ya5vP15f1/1SJKGt6zHvh8GTq2qK5LsCXwzyYVVdd2EdhdX1aoe65Akbafethyq\n", 1109 | "6o6quqJ9/ABwHfDkSZqmrxokSTMzL/sckhwEHA6sn/BUAS9McmWSdUkOm496JEnT63NYCYB2SOk8\n", 1110 | "4F3tFsSgy4AVVbUpySuB84FD+65JkjS9XsMhyS7A54DPVNX5E5+vqvsHHl+Q5Mwk+1TV3ZP0tXpg\n", 1111 | "cqyqxnooWZJ2WElWAivnpK+qmot+uh0nAc4GflRVp07RZj/gzqqqJEcAn62qgyZpV1XlvgkNLUk1\n", 1112 | "o5az6gX/343O7H+H/v5m89nZ55bDi4A3Alclubyd917gKQBVtQZ4NfD2JJuBTcAJPdYjSRpSb1sO\n", 1113 | "c8ktB20vtxx2fG45zN5sPjs9Q1qS1GE4SJI6DAdJUofhIEnqMBwkSR2GgySpw3CQJHUYDpKkDsNB\n", 1114 | "ktRhOEiSOgwHSVKH4SBJ6jAcJEkdhoMkqcNwkCR1GA6SpA7DQZLUYThIkjoMB0lSh+EgSeowHCRJ\n", 1115 | "HYaDJKnDcJAkdRgOkqQOw0GS1GE4SJI6DAdJUofhIEnqMBwkSR29hUOSFUkuSnJNkm8leecU7U5P\n", 1116 | "ckOSK5Mc3lc9kqThLeux74eBU6vqiiR7At9McmFVXTfeIMmxwMFVdUiS5wMfB47ssSZJ0hB623Ko\n", 1117 | "qjuq6or28QPAdcCTJzRbBZzdtlkP7J1kv75qkiQNp88th0clOQg4HFg/4akDgFsGpm8FlgMbZrm8\n", 1118 | "g4E3zqYP4OaqOmuWfUjSDqn3cGiHlM4D3tVuQXSaTJiuKfpZPTA5VlVj0yz2YFj+bnjr47an1q1u\n", 1119 | "Ar54JTDjcEgy6fuYT1U1cd3Om7l4/6OsX5qtUfwNJFkJrJztcqHncEiyC/A54DNVdf4kTW4DVgxM\n", 1120 | "L2/ndVTV6u1b+oEPweoZhsPFwBdn9tLHmM3/jczB60dtR69fmq35/RtovzSPPdpDctpMl97n0UoB\n", 1121 | "PgFcW1UfmaLZWuBNbfsjgY1VNashJUnS7PW55fAimnH/q5Jc3s57L/AUgKpaU1Xrkhyb5EbgQeCk\n", 1122 | "HuuRJA2pt3Coqv/HEFsmVXVKXzVIkmbGM6QlSR2GgySpw3CQJHUYDpKkDsNBktRhOEiSOgwHSVKH\n", 1123 | "4SBJ6jAcJEkdhoMkqcNwkCR1GA6SpA7DQZLUYThIkjqmDYcky5J8e76KkSQtDNOGQ1VtBq5PcuA8\n", 1124 | "1SNJWgCGudnPPsA1Sb5Oc7c2gKqqVf2VJUkapWHC4T9NMm82d82WJC1w2wyHqhpLchBwcFV9Jcke\n", 1125 | "w7xOkrTj2ubRSklOBv4XsKadtRz42z6LkiSN1jCHsr4DeDFwH0BVfQf4+T6LkiSN1jDh8JOq+sn4\n", 1126 | "RJJluM9Bkha1YcLh4iTvA/ZI8nKaIaYv9FuWJGmUhgmHdwN3AVcDbwPWAe/vsyhJ0mgNc7TSI0nO\n", 1127 | "BtbTDCddX1UOK0nSIrbNcEhyHPCXwPfaWU9L8raqWtdrZZKkkRnmfIW/AF5SVTcCJHk6zdCS4SBJ\n", 1128 | "i9Qw+xzuGw+G1vdoD2uVJC1OU245JPn19uGlSdYBn22nXwNcOkznST4JHAfcWVXPnuT5lcDn2Tpk\n", 1129 | "9bmq+q/DlS5J6st0w0qvYuv5DHcCR7WP7wJ2G7L/s4AzgE9N0+ZiL+InSQvLlOFQVSfOtvOquqS9\n", 1130 | "LtN0MtvlSJLm1jBHKz0N+B3goIH2c3XJ7gJemORK4Dbg96rq2jnoV5I0C8McrXQ+8Dc0Z0VvaefN\n", 1131 | "1XkOlwErqmpTkle2yzp0soZJVg9MjlXV2BzVIEmLQrsfd+Vc9DVMODxUVafPxcImqqr7Bx5fkOTM\n", 1132 | "JPtU1d2TtF3dRw2StFi0X5rHxqeTnDbTvoYJhzPab+1fAh69AF9VXTbThY5Lsh/NkUyV5AggkwWD\n", 1133 | "JGl+DRMOzwJ+E3gJW4eVaKenleQcmqOc9k1yC3AasAtAVa0BXg28PclmYBNwwnZVL0nqxTDh8Brg\n", 1134 | "qVX10+3tvKpet43nPwZ8bHv7lST1a5gzpK8Gnth3IZKkhWOYLYcnAtcn+QZb9znM1aGskqQFaJhw\n", 1135 | "mPHebknSjmmY+zmMzUMdkqQFZJgzpB9g60lvu9IcbfRAVe3VZ2GSpNEZZsthz/HHSXYCVgFH9lmU\n", 1136 | "JGm0hjla6VFVtaWqzgeO6akeSdICMMyw0q8PTO4E/CLw494qkiSN3DBHKw3e12EzcBNwfF8FSZJG\n", 1137 | "b5h9DifOQx2SpAVkutuETnV+QwFU1R/1UpEkaeSm23J4kO59Gx4PvBXYFzAcJGmRmu42oR8cf5xk\n", 1138 | "L+CdwEnAucCH+i9NkjQq0+5zSPKzwKnAG4BPAc+tqnvmozBJ0uhMt8/hg8CvAX8FPGfwrm2SpMVt\n", 1139 | "upPg/iNwAPB+4PYk9w/83Dc/5UmSRmG6fQ7bdfa0JGnxMAAkSR2GgySpw3CQJHUYDpKkDsNBktRh\n", 1140 | "OEiSOgwHSVKH4SBJ6jAcJEkdhoMkqcNwkCR19BoOST6ZZEOSq6dpc3qSG5JcmeTwPuuRJA2n7y2H\n", 1141 | "s4BjpnoyybHAwVV1CHAy8PGe65EkDaHXcKiqS4Dpbg60Cji7bbse2DvJfn3WJEnatlHvczgAuGVg\n", 1142 | "+lZg+YhqkSS1pr1N6DzJhOmatFGyemByrKrG+ipIkGTS34OGNxfrsKom/n3MG/8P7HiSrARWzkVf\n", 1143 | "ow6H24AVA9PL23kdVbV6PgrSoNl8NozsM22B2dHX4Wzr39Hf/46l/dI8Nj6d5LSZ9jXqYaW1wJsA\n", 1144 | "khwJbKyqDaMtSZLU65ZDknOAo4B9k9wCnAbsAlBVa6pqXZJjk9wIPAic1Gc9kqTh9BoOVfW6Idqc\n", 1145 | "0mcNkqTtN+phJUnSAmQ4SJI6DAdJUofhIEnqMBwkSR2GgySpw3CQJHUYDpKkDsNBktRhOEiSOgwH\n", 1146 | "SVKH4SBJ6jAcJEkdhoMkqcNwkCR1GA6SpA7DQZLUYThIkjoMB0lSh+EgSeowHCRJHYaDJKnDcJAk\n", 1147 | "dRgOkqQOw0GS1GE4SJI6DAdJUofhIEnq6DUckhyT5PokNyT5w0meX5nk3iSXtz/v77MeSdJwlvXV\n", 1148 | "cZKdgY8CLwNuA76RZG1VXTeh6cVVtaqvOiRJ26/PLYcjgBur6qaqehg4Fzh+knbpsQZJ0gz0GQ4H\n", 1149 | "ALcMTN/azhtUwAuTXJlkXZLDeqxHkjSk3oaVaD74t+UyYEVVbUrySuB84NAea5IkDaHPcLgNWDEw\n", 1150 | "vYJm6+FRVXX/wOMLkpyZZJ+quntiZ0lWD0yOVdXY3JYrSTu2JCuBlXPRV5/hcClwSJKDgNuB1wKv\n", 1151 | "G2yQZD/gzqqqJEcAmSwYAKpqdY+1StIOr/3SPDY+neS0mfbVWzhU1eYkpwBfAnYGPlFV1yV5W/v8\n", 1152 | "GuDVwNuTbAY2ASf0VY8kaXh9bjlQVRcAF0yYt2bg8ceAj/VZgyRp+3mGtCSpw3CQJHUYDpKkDsNB\n", 1153 | "ktRhOEiSOgwHSVKH4SBJ6jAcJEkdhoMkqcNwkCR1GA6SpA7DQZLUYThIkjoMB0lSh+EgSeowHCRJ\n", 1154 | "HYaDJKnDcJAkdRgOkqQOw0GS1GE4SJI6DAdJUofhIEnqMBwkSR2GgySpw3CQJHUYDpKkDsNBktTR\n", 1155 | "azgkOSbJ9UluSPKHU7Q5vX3+yiSH91mPJGk4vYVDkp2BjwLHAIcBr0vyzAltjgUOrqpDgJOBj/dV\n", 1156 | "z+IxNuoCFowkK0ddw0Lhuhg0NuoCFoU+txyOAG6sqpuq6mHgXOD4CW1WAWcDVNV6YO8k+/VY0yIw\n", 1157 | "NuoCFpKVoy5gAVk56gIWjrFRF7Ao9BkOBwC3DEzf2s7bVpvlPdYkSRrCsh77riHbZYav24ardoOj\n", 1158 | "753Za+9ZBpsfmZs6JGnHk6o5+iye2HFyJLC6qo5pp98DbKmqPxto85fAWFWd205fDxxVVRsm9NVP\n", 1159 | "kZK0yFXVxC/gQ+lzy+FS4JAkBwG3A68FXjehzVrgFODcNkw2TgwGmPmbkyTNTG/hUFWbk5wCfAnY\n", 1160 | "GfhEVV2X5G3t82uqal2SY5PcCDwInNRXPZKk4fU2rCRJ2nEt6DOkhzmJbrFKsiLJRUmuSfKtJO9s\n", 1161 | "5++T5MIk30ny5SR7j7rW+ZJk5ySXJ/lCO70k10WSvZOcl+S6JNcmef4SXhfvaf9Grk7yP5I8bqms\n", 1162 | "iySfTLIhydUD86Z87+26uqH9TH3FtvpfsOEwzEl0i9zDwKlV9SzgSOAd7ft/N3BhVR0KfLWdXire\n", 1163 | "BVzL1iPaluq6+O/Auqp6JvAc4HqW4Lpo92f+FvDcqno2zfD1CSyddXEWzefjoEnfe5LDaPb7Hta+\n", 1164 | "5swk037+L9hwYLiT6Batqrqjqq5oHz8AXEdzXsijJw62//6b0VQ4v5IsB44F/oathz8vuXWR5GeA\n", 1165 | "X66qT0Kzb6+q7mUJrgvgPpovUXskWQbsQXPwy5JYF1V1CXDPhNlTvffjgXOq6uGqugm4keYzdkoL\n", 1166 | "ORyGOYluSWi/IR0OrAf2GziiawOwVM4o/zDw+8CWgXlLcV08FbgryVlJLkvy10kezxJcF1V1N/Ah\n", 1167 | "4Ps0obCxqi5kCa6LAVO99yfTfIaO2+bn6UIOB/eUA0n2BD4HvKuq7h98rpqjCRb9ekryr4E7q+py\n", 1168 | "uidNAktnXdAcYfhc4Myqei7NUX6PGTZZKusiydOB/wAcRPPht2eSNw62WSrrYjJDvPdp18tCDofb\n", 1169 | "gBUD0yt4bPItekl2oQmGT1fV+e3sDUme1D6/P3DnqOqbRy8EViX5Z+Ac4Ogkn2ZprotbgVur6hvt\n", 1170 | "9Hk0YXHHElwXzwO+VlU/qqrNwP8GXsDSXBfjpvqbmPh5urydN6WFHA6PnkSXZFeanSlrR1zTvEkS\n", 1171 | "4BPAtVX1kYGn1gJvbh+/GTh/4msXm6p6b1WtqKqn0uxw/Luq+k2W5rq4A7glyaHtrJcB1wBfYImt\n", 1172 | "C5od8Ucm2b39e3kZzQELS3FdjJvqb2ItcEKSXZM8FTgE+Pp0HS3o8xySvBL4CFtPovvTEZc0b5K8\n", 1173 | "GPh74Cq2bv69h+YX+lngKcBNwG9U1cZR1DgKSY4CfreqViXZhyW4LpL8As2O+V2B79KcPLozS3Nd\n", 1174 | "/AHNh+AW4DLg3wFPYAmsiyTnAEcB+9LsX/gA8HmmeO9J3gu8BdhMM0z9pWn7X8jhIEkajYU8rCRJ\n", 1175 | "GhHDQZLUYThIkjoMB0lSh+EgSeowHCRJHYaDNCDJ+9pLpF/ZXh582ouTSYtVn7cJlXYoSV4AHAcc\n", 1176 | "XlUPtyfZPW4W/S1rL+sg7XDccpC2ehLww/YS8VTV3VX1gyS/lOQfklyRZH2SxyfZrb0y6lXt1VFX\n", 1177 | "AiQ5McnaJF8FLkyyR3tTlvVtu1UjfH/S0NxykLb6MvCBJN8GvgL8T+CfaO4l8htV9c32KrkP0VwN\n", 1178 | "9JGqek6SZwBfHrje0eHAs6tqY5I/Ab5aVW9p78q1PslXqmrTfL85aXu45SC1qupB4BeBk4G7aMLh\n", 1179 | "ZOAHVfXNts0DVfUI8CLgM+28bwM3A4fSXAfrwoFr+bwCeHeSy4GLaIapBq+OKS1IbjlIA6pqC3Ax\n", 1180 | "cHF7b953TNN80ntL0NxjYdC/raob5qI+ab645SC1khya5JCBWYfT3J71SUme17Z5Qnt/80uAN4y/\n", 1181 | "juYqmNfTDYwvAe8cWMbh/b0Dae645SBttSdwRrtvYDNwA82w0lnt/N2BTTT3DTgT+HiSq9q2b26P\n", 1182 | "cJp4963/AnykbbcT8D2a+/xKC5qX7JYkdTisJEnqMBwkSR2GgySpw3CQJHUYDpKkDsNBktRhOEiS\n", 1183 | "OgwHSVLH/wemLGnX4NSjaAAAAABJRU5ErkJggg==\n" 1184 | ], 1185 | "text/plain": [ 1186 | "" 1187 | ] 1188 | }, 1189 | "metadata": {}, 1190 | "output_type": "display_data" 1191 | } 1192 | ], 1193 | "source": [ 1194 | "fig = plt.figure()\n", 1195 | "ax = fig.add_subplot(111)\n", 1196 | "ind = np.arange(len(rankedScores))\n", 1197 | "width = 0.2\n", 1198 | "#rects = ax.bar(salaries, ind, width)\n", 1199 | "plt.hist(rankedScores.values(), bins=xrange(min(rankedScores), max(rankedScores)).__len__())\n", 1200 | "ax.set_xlabel('Score')\n", 1201 | "ax.set_ylabel('Number')\n", 1202 | "ax.set_title('Histogram of scores')\n", 1203 | "plt.show()" 1204 | ] 1205 | }, 1206 | { 1207 | "cell_type": "code", 1208 | "execution_count": 45, 1209 | "metadata": { 1210 | "collapsed": false 1211 | }, 1212 | "outputs": [ 1213 | { 1214 | "data": { 1215 | "text/plain": [ 1216 | "xrange(1, 20)" 1217 | ] 1218 | }, 1219 | "execution_count": 45, 1220 | "metadata": {}, 1221 | "output_type": "execute_result" 1222 | } 1223 | ], 1224 | "source": [ 1225 | "xrange(min(rankedScores), max(rankedScores))" 1226 | ] 1227 | }, 1228 | { 1229 | "cell_type": "code", 1230 | "execution_count": 47, 1231 | "metadata": { 1232 | "collapsed": true 1233 | }, 1234 | "outputs": [], 1235 | "source": [ 1236 | "from scipy.stats.mstats import mquantiles" 1237 | ] 1238 | }, 1239 | { 1240 | "cell_type": "code", 1241 | "execution_count": 48, 1242 | "metadata": { 1243 | "collapsed": false 1244 | }, 1245 | "outputs": [ 1246 | { 1247 | "data": { 1248 | "text/plain": [ 1249 | "array([ 19.45, 44. , 75.2 ])" 1250 | ] 1251 | }, 1252 | "execution_count": 48, 1253 | "metadata": {}, 1254 | "output_type": "execute_result" 1255 | } 1256 | ], 1257 | "source": [ 1258 | "mquantiles(sortedScores)" 1259 | ] 1260 | }, 1261 | { 1262 | "cell_type": "code", 1263 | "execution_count": 49, 1264 | "metadata": { 1265 | "collapsed": false 1266 | }, 1267 | "outputs": [ 1268 | { 1269 | "data": { 1270 | "text/plain": [ 1271 | "[19.75, 44.00, 74.00]" 1272 | ] 1273 | }, 1274 | "execution_count": 49, 1275 | "metadata": {}, 1276 | "output_type": "execute_result" 1277 | } 1278 | ], 1279 | "source": [ 1280 | "[np.percentile(sortedScores, perc) for perc in [25,50,75]]" 1281 | ] 1282 | }, 1283 | { 1284 | "cell_type": "code", 1285 | "execution_count": null, 1286 | "metadata": { 1287 | "collapsed": true 1288 | }, 1289 | "outputs": [], 1290 | "source": [] 1291 | } 1292 | ], 1293 | "metadata": { 1294 | "kernelspec": { 1295 | "display_name": "Python 2", 1296 | "language": "python", 1297 | "name": "python2" 1298 | }, 1299 | "language_info": { 1300 | "codemirror_mode": { 1301 | "name": "ipython", 1302 | "version": 2 1303 | }, 1304 | "file_extension": ".py", 1305 | "mimetype": "text/x-python", 1306 | "name": "python", 1307 | "nbconvert_exporter": "python", 1308 | "pygments_lexer": "ipython2", 1309 | "version": "2.7.9" 1310 | } 1311 | }, 1312 | "nbformat": 4, 1313 | "nbformat_minor": 0 1314 | } 1315 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # mastering_pandas 2 | This readme is for Mastering Pandas 3 | --------------------------------------------------------------------------------