├── Pandas.ipynb ├── README.md └── pics └── Constructors.PNG /Pandas.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "metadata": { 3 | "name": "pandas.ipynb", 4 | "signature": "sha256:a0a225575bcd9081a8c5eb519fd740c0b6a46d6ab6b5a239e22401b0043d7b99" 5 | }, 6 | "nbformat": 3, 7 | "nbformat_minor": 0, 8 | "worksheets": [ 9 | { 10 | "cells": [ 11 | { 12 | "cell_type": "markdown", 13 | "metadata": {}, 14 | "source": [ 15 | "#Pandas\n", 16 | "Pandas contains high level data structures and manipulation tools to make data analysis fast and easy in Python." 17 | ] 18 | }, 19 | { 20 | "cell_type": "code", 21 | "collapsed": false, 22 | "input": [ 23 | "import pandas as pd #I am importing pandas as pd\n", 24 | "from pandas import Series, DataFrame # Series and Data Frame are two data structures available in python" 25 | ], 26 | "language": "python", 27 | "metadata": {}, 28 | "outputs": [], 29 | "prompt_number": 2 30 | }, 31 | { 32 | "cell_type": "markdown", 33 | "metadata": {}, 34 | "source": [ 35 | "## Series\n", 36 | "Series is a one-dimensional array like object containing an array of data(any Numpy data type, and an associated array of data labels, called its index." 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "collapsed": false, 42 | "input": [ 43 | "mjp= Series([5,4,3,2,1])# a simple series\n", 44 | "print mjp # A series is represented by index on the left and values on the right\n", 45 | "print mjp.values # similar to dictionary. \".values\" command returns values in a series " 46 | ], 47 | "language": "python", 48 | "metadata": {}, 49 | "outputs": [ 50 | { 51 | "output_type": "stream", 52 | "stream": "stdout", 53 | "text": [ 54 | "0 5\n", 55 | "1 4\n", 56 | "2 3\n", 57 | "3 2\n", 58 | "4 1\n", 59 | "dtype: int64\n", 60 | "[5 4 3 2 1]\n" 61 | ] 62 | } 63 | ], 64 | "prompt_number": 13 65 | }, 66 | { 67 | "cell_type": "code", 68 | "collapsed": false, 69 | "input": [ 70 | "print mjp.index # returns the index values of the series" 71 | ], 72 | "language": "python", 73 | "metadata": {}, 74 | "outputs": [ 75 | { 76 | "output_type": "stream", 77 | "stream": "stdout", 78 | "text": [ 79 | "Int64Index([0, 1, 2, 3, 4], dtype='int64')\n" 80 | ] 81 | } 82 | ], 83 | "prompt_number": 14 84 | }, 85 | { 86 | "cell_type": "code", 87 | "collapsed": false, 88 | "input": [ 89 | "jeeva = Series([5,4,3,2,1,-7,-29], index =['a','b','c','d','e','f','h']) # The index is specified\n", 90 | "print jeeva # try jeeva.index and jeeva.values\n", 91 | "print jeeva['a'] # selecting a particular value from a Series, by using index" 92 | ], 93 | "language": "python", 94 | "metadata": {}, 95 | "outputs": [ 96 | { 97 | "output_type": "stream", 98 | "stream": "stdout", 99 | "text": [ 100 | "a 5\n", 101 | "b 4\n", 102 | "c 3\n", 103 | "d 2\n", 104 | "e 1\n", 105 | "f -7\n", 106 | "h -29\n", 107 | "dtype: int64\n", 108 | "5\n" 109 | ] 110 | } 111 | ], 112 | "prompt_number": 27 113 | }, 114 | { 115 | "cell_type": "code", 116 | "collapsed": false, 117 | "input": [ 118 | "jeeva['d'] = 9 # change the value of a particular element in series\n", 119 | "print jeeva\n", 120 | "jeeva[['a','b','c']] # select a group of values" 121 | ], 122 | "language": "python", 123 | "metadata": {}, 124 | "outputs": [ 125 | { 126 | "output_type": "stream", 127 | "stream": "stdout", 128 | "text": [ 129 | "a 5\n", 130 | "b 4\n", 131 | "c 3\n", 132 | "d 9\n", 133 | "e 1\n", 134 | "f -7\n", 135 | "h -29\n", 136 | "dtype: int64\n" 137 | ] 138 | }, 139 | { 140 | "metadata": {}, 141 | "output_type": "pyout", 142 | "prompt_number": 28, 143 | "text": [ 144 | "a 5\n", 145 | "b 4\n", 146 | "c 3\n", 147 | "dtype: int64" 148 | ] 149 | } 150 | ], 151 | "prompt_number": 28 152 | }, 153 | { 154 | "cell_type": "code", 155 | "collapsed": false, 156 | "input": [ 157 | "print jeeva[jeeva>0] # returns only the positive values\n", 158 | "print jeeva *2 # multiplies 2 to each element of a series" 159 | ], 160 | "language": "python", 161 | "metadata": {}, 162 | "outputs": [ 163 | { 164 | "output_type": "stream", 165 | "stream": "stdout", 166 | "text": [ 167 | "a 5\n", 168 | "b 4\n", 169 | "c 3\n", 170 | "d 9\n", 171 | "e 1\n", 172 | "dtype: int64\n", 173 | "a 10\n", 174 | "b 8\n", 175 | "c 6\n", 176 | "d 18\n", 177 | "e 2\n", 178 | "f -14\n", 179 | "h -58\n", 180 | "dtype: int64\n" 181 | ] 182 | } 183 | ], 184 | "prompt_number": 31 185 | }, 186 | { 187 | "cell_type": "code", 188 | "collapsed": false, 189 | "input": [ 190 | "import numpy as np\n", 191 | "np.mean(jeeva) # you can apply numpy functions to a Series" 192 | ], 193 | "language": "python", 194 | "metadata": {}, 195 | "outputs": [ 196 | { 197 | "metadata": {}, 198 | "output_type": "pyout", 199 | "prompt_number": 34, 200 | "text": [ 201 | "-2.0" 202 | ] 203 | } 204 | ], 205 | "prompt_number": 34 206 | }, 207 | { 208 | "cell_type": "code", 209 | "collapsed": false, 210 | "input": [ 211 | "print 'b' in jeeva # checks whether the index is present in Series or not\n", 212 | "print 'z' in jeeva" 213 | ], 214 | "language": "python", 215 | "metadata": {}, 216 | "outputs": [ 217 | { 218 | "output_type": "stream", 219 | "stream": "stdout", 220 | "text": [ 221 | "True\n", 222 | "False\n" 223 | ] 224 | } 225 | ], 226 | "prompt_number": 37 227 | }, 228 | { 229 | "cell_type": "code", 230 | "collapsed": false, 231 | "input": [ 232 | "player_salary ={'Rooney': 50000, 'Messi': 75000, 'Ronaldo': 85000, 'Fabregas':40000, 'Van persie': 67000} \n", 233 | "new_player = Series(player_salary)# converting a dictionary to a series\n", 234 | "print new_player # the series has keys of a dictionary" 235 | ], 236 | "language": "python", 237 | "metadata": {}, 238 | "outputs": [ 239 | { 240 | "output_type": "stream", 241 | "stream": "stdout", 242 | "text": [ 243 | "Fabregas 40000\n", 244 | "Messi 75000\n", 245 | "Ronaldo 85000\n", 246 | "Rooney 50000\n", 247 | "Van persie 67000\n", 248 | "dtype: int64\n" 249 | ] 250 | } 251 | ], 252 | "prompt_number": 46 253 | }, 254 | { 255 | "cell_type": "code", 256 | "collapsed": false, 257 | "input": [ 258 | "players =['Klose', 'Messi', 'Ronaldo', 'Van persie', 'Ballack'] \n", 259 | "player_1 =Series(player_salary, index= players)\n", 260 | "print player_1 # I have changed the index of the Series. Since, no value was not found for Klose and Ballack, it appears as NAN" 261 | ], 262 | "language": "python", 263 | "metadata": {}, 264 | "outputs": [ 265 | { 266 | "output_type": "stream", 267 | "stream": "stdout", 268 | "text": [ 269 | "Klose NaN\n", 270 | "Messi 75000\n", 271 | "Ronaldo 85000\n", 272 | "Van persie 67000\n", 273 | "Ballack NaN\n", 274 | "dtype: float64\n" 275 | ] 276 | } 277 | ], 278 | "prompt_number": 49 279 | }, 280 | { 281 | "cell_type": "code", 282 | "collapsed": false, 283 | "input": [ 284 | "pd.isnull(player_1)#checks for Null values in player_1, pd denotes a pandas dataframe" 285 | ], 286 | "language": "python", 287 | "metadata": {}, 288 | "outputs": [ 289 | { 290 | "metadata": {}, 291 | "output_type": "pyout", 292 | "prompt_number": 53, 293 | "text": [ 294 | "Klose True\n", 295 | "Messi False\n", 296 | "Ronaldo False\n", 297 | "Van persie False\n", 298 | "Ballack True\n", 299 | "dtype: bool" 300 | ] 301 | } 302 | ], 303 | "prompt_number": 53 304 | }, 305 | { 306 | "cell_type": "code", 307 | "collapsed": false, 308 | "input": [ 309 | "pd.notnull(player_1)# Checks for null values that are not Null" 310 | ], 311 | "language": "python", 312 | "metadata": {}, 313 | "outputs": [ 314 | { 315 | "metadata": {}, 316 | "output_type": "pyout", 317 | "prompt_number": 52, 318 | "text": [ 319 | "Klose False\n", 320 | "Messi True\n", 321 | "Ronaldo True\n", 322 | "Van persie True\n", 323 | "Ballack False\n", 324 | "dtype: bool" 325 | ] 326 | } 327 | ], 328 | "prompt_number": 52 329 | }, 330 | { 331 | "cell_type": "code", 332 | "collapsed": false, 333 | "input": [ 334 | "player_1.name ='Bundesliga players' # name for the Series\n", 335 | "player_1.index.name='Player names' #name of the index\n", 336 | "player_1" 337 | ], 338 | "language": "python", 339 | "metadata": {}, 340 | "outputs": [ 341 | { 342 | "metadata": {}, 343 | "output_type": "pyout", 344 | "prompt_number": 64, 345 | "text": [ 346 | "Player names\n", 347 | "Klose NaN\n", 348 | "Messi 75000\n", 349 | "Ronaldo 85000\n", 350 | "Van persie 67000\n", 351 | "Ballack NaN\n", 352 | "Name: Bundesliga players, dtype: float64" 353 | ] 354 | } 355 | ], 356 | "prompt_number": 64 357 | }, 358 | { 359 | "cell_type": "code", 360 | "collapsed": false, 361 | "input": [ 362 | "player_1.index =['Neymar', 'Hulk', 'Pirlo', 'Buffon', 'Anderson'] # is used to alter the index of Series\n", 363 | "player_1 " 364 | ], 365 | "language": "python", 366 | "metadata": {}, 367 | "outputs": [ 368 | { 369 | "metadata": {}, 370 | "output_type": "pyout", 371 | "prompt_number": 67, 372 | "text": [ 373 | "Neymar NaN\n", 374 | "Hulk 75000\n", 375 | "Pirlo 85000\n", 376 | "Buffon 67000\n", 377 | "Anderson NaN\n", 378 | "Name: Bundesliga players, dtype: float64" 379 | ] 380 | } 381 | ], 382 | "prompt_number": 67 383 | }, 384 | { 385 | "cell_type": "markdown", 386 | "metadata": {}, 387 | "source": [ 388 | "#Data Frame\n", 389 | "Data frame is a spread sheet like structure, containing ordered collection of columns. Each column can have different value type.\n", 390 | "Data frame has both row index and column index." 391 | ] 392 | }, 393 | { 394 | "cell_type": "code", 395 | "collapsed": false, 396 | "input": [ 397 | "states ={'State' :['Gujarat', 'Tamil Nadu', ' Andhra', 'Karnataka', 'Kerala'],\n", 398 | " 'Population': [36, 44, 67,89,34],\n", 399 | " 'Language' :['Gujarati', 'Tamil', 'Telugu', 'Kannada', 'Malayalam']}\n", 400 | "india = DataFrame(states) # creating a data frame\n", 401 | "india" 402 | ], 403 | "language": "python", 404 | "metadata": {}, 405 | "outputs": [ 406 | { 407 | "html": [ 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 | " \n", 434 | " \n", 435 | " \n", 436 | " \n", 437 | " \n", 438 | " \n", 439 | " \n", 440 | " \n", 441 | " \n", 442 | " \n", 443 | " \n", 444 | " \n", 445 | " \n", 446 | " \n", 447 | " \n", 448 | " \n", 449 | " \n", 450 | "
LanguagePopulationState
0 Gujarati 36 Gujarat
1 Tamil 44 Tamil Nadu
2 Telugu 67 Andhra
3 Kannada 89 Karnataka
4 Malayalam 34 Kerala
\n", 451 | "
" 452 | ], 453 | "metadata": {}, 454 | "output_type": "pyout", 455 | "prompt_number": 74, 456 | "text": [ 457 | " Language Population State\n", 458 | "0 Gujarati 36 Gujarat\n", 459 | "1 Tamil 44 Tamil Nadu\n", 460 | "2 Telugu 67 Andhra\n", 461 | "3 Kannada 89 Karnataka\n", 462 | "4 Malayalam 34 Kerala" 463 | ] 464 | } 465 | ], 466 | "prompt_number": 74 467 | }, 468 | { 469 | "cell_type": "code", 470 | "collapsed": false, 471 | "input": [ 472 | "DataFrame(states, columns=['State', 'Language', 'Population']) # change the sequence of column index" 473 | ], 474 | "language": "python", 475 | "metadata": {}, 476 | "outputs": [ 477 | { 478 | "html": [ 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 | " \n", 510 | " \n", 511 | " \n", 512 | " \n", 513 | " \n", 514 | " \n", 515 | " \n", 516 | " \n", 517 | " \n", 518 | " \n", 519 | " \n", 520 | " \n", 521 | "
StateLanguagePopulation
0 Gujarat Gujarati 36
1 Tamil Nadu Tamil 44
2 Andhra Telugu 67
3 Karnataka Kannada 89
4 Kerala Malayalam 34
\n", 522 | "
" 523 | ], 524 | "metadata": {}, 525 | "output_type": "pyout", 526 | "prompt_number": 75, 527 | "text": [ 528 | " State Language Population\n", 529 | "0 Gujarat Gujarati 36\n", 530 | "1 Tamil Nadu Tamil 44\n", 531 | "2 Andhra Telugu 67\n", 532 | "3 Karnataka Kannada 89\n", 533 | "4 Kerala Malayalam 34" 534 | ] 535 | } 536 | ], 537 | "prompt_number": 75 538 | }, 539 | { 540 | "cell_type": "code", 541 | "collapsed": false, 542 | "input": [ 543 | "new_farme = DataFrame(states, columns=['State', 'Language', 'Population', 'Per Capita Income'], index =['a','b','c','d','e'])\n", 544 | "#if you pass a column that isnt in states, it will appear with Na values" 545 | ], 546 | "language": "python", 547 | "metadata": {}, 548 | "outputs": [], 549 | "prompt_number": 82 550 | }, 551 | { 552 | "cell_type": "code", 553 | "collapsed": false, 554 | "input": [ 555 | "print new_farme.columns\n", 556 | "print new_farme['State'] # retrieveing data like dictionary" 557 | ], 558 | "language": "python", 559 | "metadata": {}, 560 | "outputs": [ 561 | { 562 | "output_type": "stream", 563 | "stream": "stdout", 564 | "text": [ 565 | "Index([u'State', u'Language', u'Population', u'Per Capita Income'], dtype='object')\n", 566 | "a Gujarat\n", 567 | "b Tamil Nadu\n", 568 | "c Andhra\n", 569 | "d Karnataka\n", 570 | "e Kerala\n", 571 | "Name: State, dtype: object\n" 572 | ] 573 | } 574 | ], 575 | "prompt_number": 86 576 | }, 577 | { 578 | "cell_type": "code", 579 | "collapsed": false, 580 | "input": [ 581 | "new_farme.Population # like Series" 582 | ], 583 | "language": "python", 584 | "metadata": {}, 585 | "outputs": [ 586 | { 587 | "metadata": {}, 588 | "output_type": "pyout", 589 | "prompt_number": 89, 590 | "text": [ 591 | "a 36\n", 592 | "b 44\n", 593 | "c 67\n", 594 | "d 89\n", 595 | "e 34\n", 596 | "Name: Population, dtype: int64" 597 | ] 598 | } 599 | ], 600 | "prompt_number": 89 601 | }, 602 | { 603 | "cell_type": "code", 604 | "collapsed": false, 605 | "input": [ 606 | "new_farme.ix[3] # rows can be retrieved using .ic function\n", 607 | "# here I have retrieved 3rd row" 608 | ], 609 | "language": "python", 610 | "metadata": {}, 611 | "outputs": [ 612 | { 613 | "metadata": {}, 614 | "output_type": "pyout", 615 | "prompt_number": 91, 616 | "text": [ 617 | "State Karnataka\n", 618 | "Language Kannada\n", 619 | "Population 89\n", 620 | "Per Capita Income NaN\n", 621 | "Name: d, dtype: object" 622 | ] 623 | } 624 | ], 625 | "prompt_number": 91 626 | }, 627 | { 628 | "cell_type": "code", 629 | "collapsed": false, 630 | "input": [ 631 | " new_farme" 632 | ], 633 | "language": "python", 634 | "metadata": {}, 635 | "outputs": [ 636 | { 637 | "html": [ 638 | "
\n", 639 | "\n", 640 | " \n", 641 | " \n", 642 | " \n", 643 | " \n", 644 | " \n", 645 | " \n", 646 | " \n", 647 | " \n", 648 | " \n", 649 | " \n", 650 | " \n", 651 | " \n", 652 | " \n", 653 | " \n", 654 | " \n", 655 | " \n", 656 | " \n", 657 | " \n", 658 | " \n", 659 | " \n", 660 | " \n", 661 | " \n", 662 | " \n", 663 | " \n", 664 | " \n", 665 | " \n", 666 | " \n", 667 | " \n", 668 | " \n", 669 | " \n", 670 | " \n", 671 | " \n", 672 | " \n", 673 | " \n", 674 | " \n", 675 | " \n", 676 | " \n", 677 | " \n", 678 | " \n", 679 | " \n", 680 | " \n", 681 | " \n", 682 | " \n", 683 | " \n", 684 | " \n", 685 | " \n", 686 | "
StateLanguagePopulationPer Capita Income
a Gujarat Gujarati 36 NaN
b Tamil Nadu Tamil 44 NaN
c Andhra Telugu 67 NaN
d Karnataka Kannada 89 NaN
e Kerala Malayalam 34 NaN
\n", 687 | "
" 688 | ], 689 | "metadata": {}, 690 | "output_type": "pyout", 691 | "prompt_number": 94, 692 | "text": [ 693 | " State Language Population Per Capita Income\n", 694 | "a Gujarat Gujarati 36 NaN\n", 695 | "b Tamil Nadu Tamil 44 NaN\n", 696 | "c Andhra Telugu 67 NaN\n", 697 | "d Karnataka Kannada 89 NaN\n", 698 | "e Kerala Malayalam 34 NaN" 699 | ] 700 | } 701 | ], 702 | "prompt_number": 94 703 | }, 704 | { 705 | "cell_type": "code", 706 | "collapsed": false, 707 | "input": [ 708 | "new_farme['Per Capita Income'] = 99 # the empty per capita income column can be assigned a value\n", 709 | "new_farme" 710 | ], 711 | "language": "python", 712 | "metadata": {}, 713 | "outputs": [ 714 | { 715 | "html": [ 716 | "
\n", 717 | "\n", 718 | " \n", 719 | " \n", 720 | " \n", 721 | " \n", 722 | " \n", 723 | " \n", 724 | " \n", 725 | " \n", 726 | " \n", 727 | " \n", 728 | " \n", 729 | " \n", 730 | " \n", 731 | " \n", 732 | " \n", 733 | " \n", 734 | " \n", 735 | " \n", 736 | " \n", 737 | " \n", 738 | " \n", 739 | " \n", 740 | " \n", 741 | " \n", 742 | " \n", 743 | " \n", 744 | " \n", 745 | " \n", 746 | " \n", 747 | " \n", 748 | " \n", 749 | " \n", 750 | " \n", 751 | " \n", 752 | " \n", 753 | " \n", 754 | " \n", 755 | " \n", 756 | " \n", 757 | " \n", 758 | " \n", 759 | " \n", 760 | " \n", 761 | " \n", 762 | " \n", 763 | " \n", 764 | "
StateLanguagePopulationPer Capita Income
a Gujarat Gujarati 36 99
b Tamil Nadu Tamil 44 99
c Andhra Telugu 67 99
d Karnataka Kannada 89 99
e Kerala Malayalam 34 99
\n", 765 | "
" 766 | ], 767 | "metadata": {}, 768 | "output_type": "pyout", 769 | "prompt_number": 97, 770 | "text": [ 771 | " State Language Population Per Capita Income\n", 772 | "a Gujarat Gujarati 36 99\n", 773 | "b Tamil Nadu Tamil 44 99\n", 774 | "c Andhra Telugu 67 99\n", 775 | "d Karnataka Kannada 89 99\n", 776 | "e Kerala Malayalam 34 99" 777 | ] 778 | } 779 | ], 780 | "prompt_number": 97 781 | }, 782 | { 783 | "cell_type": "code", 784 | "collapsed": false, 785 | "input": [ 786 | "new_farme['Per Capita Income'] = np.arange(5) # assigning a value to the last column\n", 787 | "new_farme" 788 | ], 789 | "language": "python", 790 | "metadata": {}, 791 | "outputs": [ 792 | { 793 | "html": [ 794 | "
\n", 795 | "\n", 796 | " \n", 797 | " \n", 798 | " \n", 799 | " \n", 800 | " \n", 801 | " \n", 802 | " \n", 803 | " \n", 804 | " \n", 805 | " \n", 806 | " \n", 807 | " \n", 808 | " \n", 809 | " \n", 810 | " \n", 811 | " \n", 812 | " \n", 813 | " \n", 814 | " \n", 815 | " \n", 816 | " \n", 817 | " \n", 818 | " \n", 819 | " \n", 820 | " \n", 821 | " \n", 822 | " \n", 823 | " \n", 824 | " \n", 825 | " \n", 826 | " \n", 827 | " \n", 828 | " \n", 829 | " \n", 830 | " \n", 831 | " \n", 832 | " \n", 833 | " \n", 834 | " \n", 835 | " \n", 836 | " \n", 837 | " \n", 838 | " \n", 839 | " \n", 840 | " \n", 841 | " \n", 842 | "
StateLanguagePopulationPer Capita Income
a Gujarat Gujarati 36 0
b Tamil Nadu Tamil 44 1
c Andhra Telugu 67 2
d Karnataka Kannada 89 3
e Kerala Malayalam 34 4
\n", 843 | "
" 844 | ], 845 | "metadata": {}, 846 | "output_type": "pyout", 847 | "prompt_number": 99, 848 | "text": [ 849 | " State Language Population Per Capita Income\n", 850 | "a Gujarat Gujarati 36 0\n", 851 | "b Tamil Nadu Tamil 44 1\n", 852 | "c Andhra Telugu 67 2\n", 853 | "d Karnataka Kannada 89 3\n", 854 | "e Kerala Malayalam 34 4" 855 | ] 856 | } 857 | ], 858 | "prompt_number": 99 859 | }, 860 | { 861 | "cell_type": "code", 862 | "collapsed": false, 863 | "input": [ 864 | "series = Series([44,33,22], index =['b','c','d'])\n", 865 | "new_farme['Per Capita Income'] = series\n", 866 | "#when assigning list or arrays to a column, the values lenght should match the length of the DataFrame\n", 867 | "new_farme # again the missing values are displayed as NAN" 868 | ], 869 | "language": "python", 870 | "metadata": {}, 871 | "outputs": [ 872 | { 873 | "html": [ 874 | "
\n", 875 | "\n", 876 | " \n", 877 | " \n", 878 | " \n", 879 | " \n", 880 | " \n", 881 | " \n", 882 | " \n", 883 | " \n", 884 | " \n", 885 | " \n", 886 | " \n", 887 | " \n", 888 | " \n", 889 | " \n", 890 | " \n", 891 | " \n", 892 | " \n", 893 | " \n", 894 | " \n", 895 | " \n", 896 | " \n", 897 | " \n", 898 | " \n", 899 | " \n", 900 | " \n", 901 | " \n", 902 | " \n", 903 | " \n", 904 | " \n", 905 | " \n", 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 | "
StateLanguagePopulationPer Capita Income
a Gujarat Gujarati 36NaN
b Tamil Nadu Tamil 44 44
c Andhra Telugu 67 33
d Karnataka Kannada 89 22
e Kerala Malayalam 34NaN
\n", 923 | "
" 924 | ], 925 | "metadata": {}, 926 | "output_type": "pyout", 927 | "prompt_number": 104, 928 | "text": [ 929 | " State Language Population Per Capita Income\n", 930 | "a Gujarat Gujarati 36 NaN\n", 931 | "b Tamil Nadu Tamil 44 44\n", 932 | "c Andhra Telugu 67 33\n", 933 | "d Karnataka Kannada 89 22\n", 934 | "e Kerala Malayalam 34 NaN" 935 | ] 936 | } 937 | ], 938 | "prompt_number": 104 939 | }, 940 | { 941 | "cell_type": "code", 942 | "collapsed": false, 943 | "input": [ 944 | "new_farme['Development'] = new_farme.State == 'Gujarat'# assigning a new column\n", 945 | "print new_farme\n", 946 | "del new_farme['Development'] # will delete the column 'Development'\n", 947 | "new_farme" 948 | ], 949 | "language": "python", 950 | "metadata": {}, 951 | "outputs": [ 952 | { 953 | "output_type": "stream", 954 | "stream": "stdout", 955 | "text": [ 956 | " State Language Population Per Capita Income Development\n", 957 | "a Gujarat Gujarati 36 NaN True\n", 958 | "b Tamil Nadu Tamil 44 44 False\n", 959 | "c Andhra Telugu 67 33 False\n", 960 | "d Karnataka Kannada 89 22 False\n", 961 | "e Kerala Malayalam 34 NaN False\n" 962 | ] 963 | }, 964 | { 965 | "html": [ 966 | "
\n", 967 | "\n", 968 | " \n", 969 | " \n", 970 | " \n", 971 | " \n", 972 | " \n", 973 | " \n", 974 | " \n", 975 | " \n", 976 | " \n", 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 | " \n", 1012 | " \n", 1013 | " \n", 1014 | "
StateLanguagePopulationPer Capita Income
a Gujarat Gujarati 36NaN
b Tamil Nadu Tamil 44 44
c Andhra Telugu 67 33
d Karnataka Kannada 89 22
e Kerala Malayalam 34NaN
\n", 1015 | "
" 1016 | ], 1017 | "metadata": {}, 1018 | "output_type": "pyout", 1019 | "prompt_number": 119, 1020 | "text": [ 1021 | " State Language Population Per Capita Income\n", 1022 | "a Gujarat Gujarati 36 NaN\n", 1023 | "b Tamil Nadu Tamil 44 44\n", 1024 | "c Andhra Telugu 67 33\n", 1025 | "d Karnataka Kannada 89 22\n", 1026 | "e Kerala Malayalam 34 NaN" 1027 | ] 1028 | } 1029 | ], 1030 | "prompt_number": 119 1031 | }, 1032 | { 1033 | "cell_type": "code", 1034 | "collapsed": false, 1035 | "input": [ 1036 | "new_data ={'Modi': {2010: 72, 2012: 78, 2014 : 98},'Rahul': {2010: 55, 2012: 34, 2014: 22}}\n", 1037 | "elections = DataFrame(new_data) \n", 1038 | "print elections# the outer dict keys are columns and inner dict keys are rows\n", 1039 | "elections.T # transpose of a data frame" 1040 | ], 1041 | "language": "python", 1042 | "metadata": {}, 1043 | "outputs": [ 1044 | { 1045 | "output_type": "stream", 1046 | "stream": "stdout", 1047 | "text": [ 1048 | " Modi Rahul\n", 1049 | "2010 72 55\n", 1050 | "2012 78 34\n", 1051 | "2014 98 22\n" 1052 | ] 1053 | }, 1054 | { 1055 | "html": [ 1056 | "
\n", 1057 | "\n", 1058 | " \n", 1059 | " \n", 1060 | " \n", 1061 | " \n", 1062 | " \n", 1063 | " \n", 1064 | " \n", 1065 | " \n", 1066 | " \n", 1067 | " \n", 1068 | " \n", 1069 | " \n", 1070 | " \n", 1071 | " \n", 1072 | " \n", 1073 | " \n", 1074 | " \n", 1075 | " \n", 1076 | " \n", 1077 | " \n", 1078 | " \n", 1079 | " \n", 1080 | "
201020122014
Modi 72 78 98
Rahul 55 34 22
\n", 1081 | "
" 1082 | ], 1083 | "metadata": {}, 1084 | "output_type": "pyout", 1085 | "prompt_number": 16, 1086 | "text": [ 1087 | " 2010 2012 2014\n", 1088 | "Modi 72 78 98\n", 1089 | "Rahul 55 34 22" 1090 | ] 1091 | } 1092 | ], 1093 | "prompt_number": 16 1094 | }, 1095 | { 1096 | "cell_type": "code", 1097 | "collapsed": false, 1098 | "input": [ 1099 | "DataFrame(new_data, index =[2012, 2014, 2016]) # you can assign index for the data frame" 1100 | ], 1101 | "language": "python", 1102 | "metadata": {}, 1103 | "outputs": [ 1104 | { 1105 | "html": [ 1106 | "
\n", 1107 | "\n", 1108 | " \n", 1109 | " \n", 1110 | " \n", 1111 | " \n", 1112 | " \n", 1113 | " \n", 1114 | " \n", 1115 | " \n", 1116 | " \n", 1117 | " \n", 1118 | " \n", 1119 | " \n", 1120 | " \n", 1121 | " \n", 1122 | " \n", 1123 | " \n", 1124 | " \n", 1125 | " \n", 1126 | " \n", 1127 | " \n", 1128 | " \n", 1129 | " \n", 1130 | " \n", 1131 | " \n", 1132 | "
ModiRahul
2012 78 34
2014 98 22
2016NaNNaN
\n", 1133 | "
" 1134 | ], 1135 | "metadata": {}, 1136 | "output_type": "pyout", 1137 | "prompt_number": 17, 1138 | "text": [ 1139 | " Modi Rahul\n", 1140 | "2012 78 34\n", 1141 | "2014 98 22\n", 1142 | "2016 NaN NaN" 1143 | ] 1144 | } 1145 | ], 1146 | "prompt_number": 17 1147 | }, 1148 | { 1149 | "cell_type": "code", 1150 | "collapsed": false, 1151 | "input": [ 1152 | "ex= {'Gujarat':elections['Modi'][:-1], 'India': elections['Rahul'][:2]}\n", 1153 | "px =DataFrame(ex)\n", 1154 | "px" 1155 | ], 1156 | "language": "python", 1157 | "metadata": {}, 1158 | "outputs": [ 1159 | { 1160 | "html": [ 1161 | "
\n", 1162 | "\n", 1163 | " \n", 1164 | " \n", 1165 | " \n", 1166 | " \n", 1167 | " \n", 1168 | " \n", 1169 | " \n", 1170 | " \n", 1171 | " \n", 1172 | " \n", 1173 | " \n", 1174 | " \n", 1175 | " \n", 1176 | " \n", 1177 | " \n", 1178 | " \n", 1179 | " \n", 1180 | " \n", 1181 | " \n", 1182 | "
GujaratIndia
2010 72 55
2012 78 34
\n", 1183 | "
" 1184 | ], 1185 | "metadata": {}, 1186 | "output_type": "pyout", 1187 | "prompt_number": 18, 1188 | "text": [ 1189 | " Gujarat India\n", 1190 | "2010 72 55\n", 1191 | "2012 78 34" 1192 | ] 1193 | } 1194 | ], 1195 | "prompt_number": 18 1196 | }, 1197 | { 1198 | "cell_type": "code", 1199 | "collapsed": false, 1200 | "input": [ 1201 | "from IPython.display import Image\n", 1202 | "i = Image(filename='Constructors.png')\n", 1203 | "i # list of things you can pass to a dataframe" 1204 | ], 1205 | "language": "python", 1206 | "metadata": {}, 1207 | "outputs": [ 1208 | { 1209 | "metadata": {}, 1210 | "output_type": "pyout", 1211 | "png": "iVBORw0KGgoAAAANSUhEUgAAAiYAAAEVCAYAAADUyC7YAAAAAXNSR0IArs4c6QAAAARnQU1BAACx\njwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAFecSURBVHhe7Z29jmxLUrbnnrC4Bkxs/LG4gCNx\nAQgfaVwcHMwj4Q4uwkTCwRkDDxd7vu/ZZ57Z746TuWpVd1X36u73kVIZmRkRGfmzcmXVPqfrN38s\npZRSSrkIv/mf//mfPzY1NTU1NTU1XSH1YtLU1NTU1NR0mdSLSVNTU1NTU9NlUi8mTU1NTU1NTZdJ\nvZg0NTU1NTU1XSb1YtLU1NTU1NR0mdSLSVNTU1NTU9NlUi8mTU1NTU1NTZdJvZg0NTU1NTU1XSad\nupj8/d///R9/85vf/JD+9V//danb1HQm/dM//dO3ffTv//7vP5SnXlNTU1PT10qnLib/8i//8ufL\nyV/8xV98k32hNDW9JHkRYS9leepl+s///M9vequ2pqampqbPke76pxxeHH/7t3+7bGtquid5EeGi\n+9///d+nLibsvVs6TU1NTU0fO734YvJXf/VX3xKy36akDi+cv/mbv/n2KZd6/ukHfer7qbeJPcBe\nYL/wjVxeTLio/N3f/d23dvZSXlxM//Zv/7bcU9Rbh5x9NjU1NTVdP734YuJlhJcGFxCSOqR//Md/\n/JbzguGffZCxsb4vja+dvGiwn9g7eTFxb3Fhcd9wwUXPvbPbU1xK8Ikte3P229TU1NR07fTiiwmf\nVn0Z8OmUl8PU4UVCW15i1FG/6WsmLyLuIy6w5LRxufCi6x5CZl+ps9tT6GLvN3VNTU1NTR8rvfhi\nwguBsi8IvwFJHV8k5pmw02/T10v5DQmXCZJl8rmHdnIm9hQXHf31ctLU1NT08dKr/uNXP81Sn59c\n1bHdT8NcXkx9aXztlBcT/ynGMnsmvzHhGxDkvJgc7Sn/maffyjU1NTV9vPSqi4kvFF8i6vhSIPdT\nLDIvE14glPvv/1875cWEC4X7hrLfwuV/Y0K9lxH21m5P4de2XkyampqaPl561cWEF8J8AVD2/4rg\nwuIFhBcG9bb376B87ZQXE1J+G8Keoey3be4h9kx+Q7faU+w5ymnX1NTU1PRx0l0Xk5l8ueQlg3Je\nXpqampqampqazqYXX0z4tsRPtFnfi0lTU1NTU1PTS9OLLyb8803+U42pF5Ompqampqaml6YXX0z6\n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\nWb+zV8668mtyLiHLyq4Tn8ZW5Bx/5H3gIZxopw9QnvOirvnEDxbMCSD74SLhGafNZx1uzeU9a5Ry\n9kU+48m6tJOsUyYhQ8q2H8U618DLnKTtrX5S3vW50k3S706W7IOEbN3sI+smc8yuvT6nr6P5BPsD\nLyO7Zw/mGlieepB12U/5+JxaybnofMrhFg25OZRpI7FZyfNT0dRNGV0+mXkosoGpp31CXX7VPi9K\nucF9APCn7GE4Y5DsN+3T785eeTWe8p2cY8hyyrxUXV/nUtD5yPuAZ4T67Ee0z7aUyYnDA3/XF/XM\nobY+lyT7B8aHPjrWgb5zzBkHuEb4y/EBbXmxIZ99reKhzNnhvGOXrPwqQ8ppP2O1T/XpD9DRXvST\nbbt+UrZPcHzZzliPzr6Ucx8m9MEaoYsM2Yfyqq/dmJHxOdcg5dXYBB10sfe9oS909TPXYJZXMVuH\nLr7RK5+DUyvJw88GkHkou6mV2TToUyb3AfI27kE67dhgbDbKJPTdxBN1uNETjxib/QN+LbuheZgo\nzxhk9uvGT787e+XVeMp35hxnecqsM2XyhDrrP+I+0D/Jg160VwdS9tB2bnZ9+eKgjTrmJp9R59S5\nmPt0NZcZB1A2jmm/inP2tYqHlxB6aZes/GZcKac9ecaqHgmftpHPb3HsczcX5PaTcvZJDtm+Wrf0\nm/Lcx4IO80XSLzpTXvW1G7Nrb/vKL/kcmzhfxuXFYj57JGQSNrO8ihlf9mtb+Rx0JUsppTwFLyal\n3EN3TCmllKfQi0l5Cd0xpZRSnoL/JFPKPXTHlFJKKeUy9GJSSimllMvQi0kppZRSLkMvJqWUUkq5\nDL2YlFJKKeUy9GJSSimllMvQi0kppZRSLkMvJqWUUkq5DL2YlFJKKeUy9GJSyifBH3TLH3YrpZSP\nxumLCX9W2F9vfcSfGfaXJUn8Uqa/OnkEevnrlf5aqj+5fQb0if8sc6z8qiVl+i4v59Yeuned5CV7\nkz3lL5XuwCeJfcsvDN+7/i8dz1n8xW72J89J+ZGX7IuXrtmj1volMT8LY/GcnmPcnYvoX2UML+Xe\ndVCfxHlxz/tpRfojvdbfW3HvvCWnrejAA+8RP8yEPX74dMdPVp85TNHBzs3vYXzvxYR+zzLH6s9s\n50NZ7me1h6jjQYaXrJP59HsE+uwr9hCHK/gT6sTiOhsPZfYAl5N7uHc890L8xMRY/ADxEWF+n/GN\n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\nRnL43Uqx6OAAAAAASUVORK5CYII=\n", 1212 | "prompt_number": 150, 1213 | "text": [ 1214 | "" 1215 | ] 1216 | } 1217 | ], 1218 | "prompt_number": 150 1219 | }, 1220 | { 1221 | "cell_type": "code", 1222 | "collapsed": false, 1223 | "input": [ 1224 | "px.index.name = 'year'\n", 1225 | "px.columns.name = 'politicians'\n", 1226 | "px" 1227 | ], 1228 | "language": "python", 1229 | "metadata": {}, 1230 | "outputs": [ 1231 | { 1232 | "html": [ 1233 | "
\n", 1234 | "\n", 1235 | " \n", 1236 | " \n", 1237 | " \n", 1238 | " \n", 1239 | " \n", 1240 | " \n", 1241 | " \n", 1242 | " \n", 1243 | " \n", 1244 | " \n", 1245 | " \n", 1246 | " \n", 1247 | " \n", 1248 | " \n", 1249 | " \n", 1250 | " \n", 1251 | " \n", 1252 | " \n", 1253 | " \n", 1254 | " \n", 1255 | " \n", 1256 | " \n", 1257 | " \n", 1258 | " \n", 1259 | "
politiciansGujaratIndia
year
2010 72 55
2012 78 34
\n", 1260 | "
" 1261 | ], 1262 | "metadata": {}, 1263 | "output_type": "pyout", 1264 | "prompt_number": 155, 1265 | "text": [ 1266 | "politicians Gujarat India\n", 1267 | "year \n", 1268 | "2010 72 55\n", 1269 | "2012 78 34" 1270 | ] 1271 | } 1272 | ], 1273 | "prompt_number": 155 1274 | }, 1275 | { 1276 | "cell_type": "code", 1277 | "collapsed": false, 1278 | "input": [ 1279 | "px.values" 1280 | ], 1281 | "language": "python", 1282 | "metadata": {}, 1283 | "outputs": [ 1284 | { 1285 | "metadata": {}, 1286 | "output_type": "pyout", 1287 | "prompt_number": 156, 1288 | "text": [ 1289 | "array([[72, 55],\n", 1290 | " [78, 34]], dtype=int64)" 1291 | ] 1292 | } 1293 | ], 1294 | "prompt_number": 156 1295 | }, 1296 | { 1297 | "cell_type": "code", 1298 | "collapsed": false, 1299 | "input": [ 1300 | "jeeva = Series([5,4,3,2,1,-7,-29], index =['a','b','c','d','e','f','h'])\n", 1301 | "index = jeeva.index\n", 1302 | "print index #u denotes unicode\n", 1303 | "print index[1:]# returns all the index elements except a. \n", 1304 | "index[1] = 'f' # you cannot modify an index element. It will generate an error. In other words, they are immutable" 1305 | ], 1306 | "language": "python", 1307 | "metadata": {}, 1308 | "outputs": [ 1309 | { 1310 | "ename": "TypeError", 1311 | "evalue": "'' does not support mutable operations.", 1312 | "output_type": "pyerr", 1313 | "traceback": [ 1314 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", 1315 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m()\u001b[0m\n\u001b[0;32m 3\u001b[0m \u001b[1;32mprint\u001b[0m \u001b[0mindex\u001b[0m \u001b[1;31m#u denotes unicode\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 4\u001b[0m \u001b[1;32mprint\u001b[0m \u001b[0mindex\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;31m# returns all the index elements except a.\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 5\u001b[1;33m \u001b[0mindex\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;34m'f'\u001b[0m \u001b[1;31m# you cannot modify an index element. It will generate an error. In other words, they are immutable\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m", 1316 | "\u001b[1;32mC:\\Users\\tk\\AppData\\Local\\Enthought\\Canopy32\\User\\lib\\site-packages\\pandas\\core\\base.pyc\u001b[0m in \u001b[0;36m_disabled\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 177\u001b[0m \u001b[1;34m\"\"\"This method will not function because object is immutable.\"\"\"\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 178\u001b[0m raise TypeError(\"'%s' does not support mutable operations.\" %\n\u001b[1;32m--> 179\u001b[1;33m self.__class__)\n\u001b[0m\u001b[0;32m 180\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 181\u001b[0m \u001b[0m__setitem__\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m__setslice__\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m__delitem__\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m__delslice__\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0m_disabled\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", 1317 | "\u001b[1;31mTypeError\u001b[0m: '' does not support mutable operations." 1318 | ] 1319 | }, 1320 | { 1321 | "output_type": "stream", 1322 | "stream": "stdout", 1323 | "text": [ 1324 | "Index([u'a', u'b', u'c', u'd', u'e', u'f', u'h'], dtype='object')\n", 1325 | "Index([u'b', u'c', u'd', u'e', u'f', u'h'], dtype='object')\n" 1326 | ] 1327 | } 1328 | ], 1329 | "prompt_number": 3 1330 | }, 1331 | { 1332 | "cell_type": "code", 1333 | "collapsed": false, 1334 | "input": [ 1335 | "print px\n", 1336 | "2013 in px.index # checks if 2003 is an index in data frame px" 1337 | ], 1338 | "language": "python", 1339 | "metadata": {}, 1340 | "outputs": [ 1341 | { 1342 | "output_type": "stream", 1343 | "stream": "stdout", 1344 | "text": [ 1345 | " Gujarat India\n", 1346 | "2010 72 55\n", 1347 | "2012 78 34\n" 1348 | ] 1349 | }, 1350 | { 1351 | "metadata": {}, 1352 | "output_type": "pyout", 1353 | "prompt_number": 22, 1354 | "text": [ 1355 | "False" 1356 | ] 1357 | } 1358 | ], 1359 | "prompt_number": 22 1360 | }, 1361 | { 1362 | "cell_type": "markdown", 1363 | "metadata": {}, 1364 | "source": [ 1365 | "# Reindex" 1366 | ] 1367 | }, 1368 | { 1369 | "cell_type": "code", 1370 | "collapsed": false, 1371 | "input": [ 1372 | "var = Series(['Python', 'Java', 'c', 'c++', 'Php'], index =[5,4,3,2,1])\n", 1373 | "print var\n", 1374 | "var1 = var.reindex([1,2,3,4,5])# reindex creates a new object \n", 1375 | "print var1 " 1376 | ], 1377 | "language": "python", 1378 | "metadata": {}, 1379 | "outputs": [ 1380 | { 1381 | "output_type": "stream", 1382 | "stream": "stdout", 1383 | "text": [ 1384 | "5 Python\n", 1385 | "4 Java\n", 1386 | "3 c\n", 1387 | "2 c++\n", 1388 | "1 Php\n", 1389 | "dtype: object\n", 1390 | "1 Php\n", 1391 | "2 c++\n", 1392 | "3 c\n", 1393 | "4 Java\n", 1394 | "5 Python\n", 1395 | "dtype: object\n" 1396 | ] 1397 | } 1398 | ], 1399 | "prompt_number": 27 1400 | }, 1401 | { 1402 | "cell_type": "code", 1403 | "collapsed": false, 1404 | "input": [ 1405 | "var.reindex([1,2,3,4,5,6,7])# introduces new indexes with values Nan" 1406 | ], 1407 | "language": "python", 1408 | "metadata": {}, 1409 | "outputs": [ 1410 | { 1411 | "metadata": {}, 1412 | "output_type": "pyout", 1413 | "prompt_number": 28, 1414 | "text": [ 1415 | "1 Php\n", 1416 | "2 c++\n", 1417 | "3 c\n", 1418 | "4 Java\n", 1419 | "5 Python\n", 1420 | "6 NaN\n", 1421 | "7 NaN\n", 1422 | "dtype: object" 1423 | ] 1424 | } 1425 | ], 1426 | "prompt_number": 28 1427 | }, 1428 | { 1429 | "cell_type": "code", 1430 | "collapsed": false, 1431 | "input": [ 1432 | "var.reindex([1,2,3,4,5,6,7], fill_value =1) # you can use fill value to fill the Nan values. Here I have used fill value as 1. You can use any value." 1433 | ], 1434 | "language": "python", 1435 | "metadata": {}, 1436 | "outputs": [ 1437 | { 1438 | "metadata": {}, 1439 | "output_type": "pyout", 1440 | "prompt_number": 31, 1441 | "text": [ 1442 | "1 Php\n", 1443 | "2 c++\n", 1444 | "3 c\n", 1445 | "4 Java\n", 1446 | "5 Python\n", 1447 | "6 1\n", 1448 | "7 1\n", 1449 | "dtype: object" 1450 | ] 1451 | } 1452 | ], 1453 | "prompt_number": 31 1454 | }, 1455 | { 1456 | "cell_type": "code", 1457 | "collapsed": false, 1458 | "input": [ 1459 | "gh =Series(['Dhoni', 'Sachin', 'Kohli'], index =[0,2,4])\n", 1460 | "print gh\n", 1461 | "gh.reindex(range(6), method ='ffill') #ffill is forward fill. It forward fills the values" 1462 | ], 1463 | "language": "python", 1464 | "metadata": {}, 1465 | "outputs": [ 1466 | { 1467 | "output_type": "stream", 1468 | "stream": "stdout", 1469 | "text": [ 1470 | "0 Dhoni\n", 1471 | "2 Sachin\n", 1472 | "4 Kohli\n", 1473 | "dtype: object\n" 1474 | ] 1475 | }, 1476 | { 1477 | "metadata": {}, 1478 | "output_type": "pyout", 1479 | "prompt_number": 35, 1480 | "text": [ 1481 | "0 Dhoni\n", 1482 | "1 Dhoni\n", 1483 | "2 Sachin\n", 1484 | "3 Sachin\n", 1485 | "4 Kohli\n", 1486 | "5 Kohli\n", 1487 | "dtype: object" 1488 | ] 1489 | } 1490 | ], 1491 | "prompt_number": 35 1492 | }, 1493 | { 1494 | "cell_type": "code", 1495 | "collapsed": false, 1496 | "input": [ 1497 | "gh.reindex(range(6), method ='bfill')# bfill, backward fills the values" 1498 | ], 1499 | "language": "python", 1500 | "metadata": {}, 1501 | "outputs": [ 1502 | { 1503 | "metadata": {}, 1504 | "output_type": "pyout", 1505 | "prompt_number": 36, 1506 | "text": [ 1507 | "0 Dhoni\n", 1508 | "1 Sachin\n", 1509 | "2 Sachin\n", 1510 | "3 Kohli\n", 1511 | "4 Kohli\n", 1512 | "5 NaN\n", 1513 | "dtype: object" 1514 | ] 1515 | } 1516 | ], 1517 | "prompt_number": 36 1518 | }, 1519 | { 1520 | "cell_type": "code", 1521 | "collapsed": false, 1522 | "input": [ 1523 | "import numpy as np\n", 1524 | "fp = DataFrame(np.arange(9).reshape((3,3)),index =['a','b','c'], columns =['Gujarat','Tamil Nadu', 'Kerala'])\n", 1525 | "fp" 1526 | ], 1527 | "language": "python", 1528 | "metadata": {}, 1529 | "outputs": [ 1530 | { 1531 | "html": [ 1532 | "
\n", 1533 | "\n", 1534 | " \n", 1535 | " \n", 1536 | " \n", 1537 | " \n", 1538 | " \n", 1539 | " \n", 1540 | " \n", 1541 | " \n", 1542 | " \n", 1543 | " \n", 1544 | " \n", 1545 | " \n", 1546 | " \n", 1547 | " \n", 1548 | " \n", 1549 | " \n", 1550 | " \n", 1551 | " \n", 1552 | " \n", 1553 | " \n", 1554 | " \n", 1555 | " \n", 1556 | " \n", 1557 | " \n", 1558 | " \n", 1559 | " \n", 1560 | " \n", 1561 | " \n", 1562 | "
GujaratTamil NaduKerala
a 0 1 2
b 3 4 5
c 6 7 8
\n", 1563 | "
" 1564 | ], 1565 | "metadata": {}, 1566 | "output_type": "pyout", 1567 | "prompt_number": 45, 1568 | "text": [ 1569 | " Gujarat Tamil Nadu Kerala\n", 1570 | "a 0 1 2\n", 1571 | "b 3 4 5\n", 1572 | "c 6 7 8" 1573 | ] 1574 | } 1575 | ], 1576 | "prompt_number": 45 1577 | }, 1578 | { 1579 | "cell_type": "code", 1580 | "collapsed": false, 1581 | "input": [ 1582 | "fp1 =fp.reindex(['a', 'b', 'c', 'd'], columns = states) # reindexing columns and indices\n", 1583 | "fp1" 1584 | ], 1585 | "language": "python", 1586 | "metadata": {}, 1587 | "outputs": [ 1588 | { 1589 | "html": [ 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 | "
GujaratAssamKerala
a 0NaN 2
b 3NaN 5
c 6NaN 8
dNaNNaNNaN
\n", 1627 | "
" 1628 | ], 1629 | "metadata": {}, 1630 | "output_type": "pyout", 1631 | "prompt_number": 55, 1632 | "text": [ 1633 | " Gujarat Assam Kerala\n", 1634 | "a 0 NaN 2\n", 1635 | "b 3 NaN 5\n", 1636 | "c 6 NaN 8\n", 1637 | "d NaN NaN NaN" 1638 | ] 1639 | } 1640 | ], 1641 | "prompt_number": 55 1642 | }, 1643 | { 1644 | "cell_type": "markdown", 1645 | "metadata": {}, 1646 | "source": [ 1647 | "Other Reindexing arguments
\n", 1648 | "limit When forward- or backfilling, maximum size gap to fill
\n", 1649 | "level Match simple Index on level of MultiIndex, otherwise select subset of
\n", 1650 | "copy Do not copy underlying data if new index is equivalent to old index. True by default (i.e. always copy data)." 1651 | ] 1652 | }, 1653 | { 1654 | "cell_type": "markdown", 1655 | "metadata": {}, 1656 | "source": [ 1657 | "# Dropping entries from an axis" 1658 | ] 1659 | }, 1660 | { 1661 | "cell_type": "code", 1662 | "collapsed": false, 1663 | "input": [ 1664 | "er = Series(np.arange(5), index =['a','b','c','d','e'])\n", 1665 | "print er\n", 1666 | "er.drop(['a','b']) #drop method will return a new object with values deleted from an axis" 1667 | ], 1668 | "language": "python", 1669 | "metadata": {}, 1670 | "outputs": [ 1671 | { 1672 | "output_type": "stream", 1673 | "stream": "stdout", 1674 | "text": [ 1675 | "a 0\n", 1676 | "b 1\n", 1677 | "c 2\n", 1678 | "d 3\n", 1679 | "e 4\n", 1680 | "dtype: int32\n" 1681 | ] 1682 | }, 1683 | { 1684 | "metadata": {}, 1685 | "output_type": "pyout", 1686 | "prompt_number": 62, 1687 | "text": [ 1688 | "c 2\n", 1689 | "d 3\n", 1690 | "e 4\n", 1691 | "dtype: int32" 1692 | ] 1693 | } 1694 | ], 1695 | "prompt_number": 62 1696 | }, 1697 | { 1698 | "cell_type": "code", 1699 | "collapsed": false, 1700 | "input": [ 1701 | "states ={'State' :['Gujarat', 'Tamil Nadu', ' Andhra', 'Karnataka', 'Kerala'],\n", 1702 | " 'Population': [36, 44, 67,89,34],\n", 1703 | " 'Language' :['Gujarati', 'Tamil', 'Telugu', 'Kannada', 'Malayalam']}\n", 1704 | "india = DataFrame(states, columns =['State', 'Population', 'Language'])\n", 1705 | "print india\n", 1706 | "india.drop([0,1])# will drop index 0 and 1" 1707 | ], 1708 | "language": "python", 1709 | "metadata": {}, 1710 | "outputs": [ 1711 | { 1712 | "output_type": "stream", 1713 | "stream": "stdout", 1714 | "text": [ 1715 | " State Population Language\n", 1716 | "0 Gujarat 36 Gujarati\n", 1717 | "1 Tamil Nadu 44 Tamil\n", 1718 | "2 Andhra 67 Telugu\n", 1719 | "3 Karnataka 89 Kannada\n", 1720 | "4 Kerala 34 Malayalam\n" 1721 | ] 1722 | }, 1723 | { 1724 | "html": [ 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 | "
StatePopulationLanguage
2 Andhra 67 Telugu
3 Karnataka 89 Kannada
4 Kerala 34 Malayalam
\n", 1756 | "
" 1757 | ], 1758 | "metadata": {}, 1759 | "output_type": "pyout", 1760 | "prompt_number": 77, 1761 | "text": [ 1762 | " State Population Language\n", 1763 | "2 Andhra 67 Telugu\n", 1764 | "3 Karnataka 89 Kannada\n", 1765 | "4 Kerala 34 Malayalam" 1766 | ] 1767 | } 1768 | ], 1769 | "prompt_number": 77 1770 | }, 1771 | { 1772 | "cell_type": "code", 1773 | "collapsed": false, 1774 | "input": [ 1775 | "india.drop(['State', 'Population'], axis =1 )# the function dropped population and state columns. Apply the same concept with axis =0" 1776 | ], 1777 | "language": "python", 1778 | "metadata": {}, 1779 | "outputs": [ 1780 | { 1781 | "html": [ 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 | " \n", 1812 | "
Language
0 Gujarati
1 Tamil
2 Telugu
3 Kannada
4 Malayalam
\n", 1813 | "
" 1814 | ], 1815 | "metadata": {}, 1816 | "output_type": "pyout", 1817 | "prompt_number": 82, 1818 | "text": [ 1819 | " Language\n", 1820 | "0 Gujarati\n", 1821 | "1 Tamil\n", 1822 | "2 Telugu\n", 1823 | "3 Kannada\n", 1824 | "4 Malayalam" 1825 | ] 1826 | } 1827 | ], 1828 | "prompt_number": 82 1829 | }, 1830 | { 1831 | "cell_type": "markdown", 1832 | "metadata": {}, 1833 | "source": [ 1834 | "#Selection, Indexing and Filtering" 1835 | ] 1836 | }, 1837 | { 1838 | "cell_type": "code", 1839 | "collapsed": false, 1840 | "input": [ 1841 | "var = Series(['Python', 'Java', 'c', 'c++', 'Php'], index =[5,4,3,2,1])\n", 1842 | "var" 1843 | ], 1844 | "language": "python", 1845 | "metadata": {}, 1846 | "outputs": [ 1847 | { 1848 | "metadata": {}, 1849 | "output_type": "pyout", 1850 | "prompt_number": 102, 1851 | "text": [ 1852 | "5 Python\n", 1853 | "4 Java\n", 1854 | "3 c\n", 1855 | "2 c++\n", 1856 | "1 Php\n", 1857 | "dtype: object" 1858 | ] 1859 | } 1860 | ], 1861 | "prompt_number": 102 1862 | }, 1863 | { 1864 | "cell_type": "code", 1865 | "collapsed": false, 1866 | "input": [ 1867 | "print var[5]\n", 1868 | "print var[2:4]" 1869 | ], 1870 | "language": "python", 1871 | "metadata": {}, 1872 | "outputs": [ 1873 | { 1874 | "output_type": "stream", 1875 | "stream": "stdout", 1876 | "text": [ 1877 | "Python\n", 1878 | "3 c\n", 1879 | "2 c++\n", 1880 | "dtype: object\n" 1881 | ] 1882 | } 1883 | ], 1884 | "prompt_number": 103 1885 | }, 1886 | { 1887 | "cell_type": "code", 1888 | "collapsed": false, 1889 | "input": [ 1890 | "var[[3,2,1]]" 1891 | ], 1892 | "language": "python", 1893 | "metadata": {}, 1894 | "outputs": [ 1895 | { 1896 | "metadata": {}, 1897 | "output_type": "pyout", 1898 | "prompt_number": 104, 1899 | "text": [ 1900 | "3 c\n", 1901 | "2 c++\n", 1902 | "1 Php\n", 1903 | "dtype: object" 1904 | ] 1905 | } 1906 | ], 1907 | "prompt_number": 104 1908 | }, 1909 | { 1910 | "cell_type": "code", 1911 | "collapsed": false, 1912 | "input": [ 1913 | "var[var == 'Php']" 1914 | ], 1915 | "language": "python", 1916 | "metadata": {}, 1917 | "outputs": [ 1918 | { 1919 | "metadata": {}, 1920 | "output_type": "pyout", 1921 | "prompt_number": 109, 1922 | "text": [ 1923 | "1 Php\n", 1924 | "dtype: object" 1925 | ] 1926 | } 1927 | ], 1928 | "prompt_number": 109 1929 | }, 1930 | { 1931 | "cell_type": "code", 1932 | "collapsed": false, 1933 | "input": [ 1934 | "states ={'State' :['Gujarat', 'Tamil Nadu', ' Andhra', 'Karnataka', 'Kerala'],\n", 1935 | " 'Population': [36, 44, 67,89,34],\n", 1936 | " 'Language' :['Gujarati', 'Tamil', 'Telugu', 'Kannada', 'Malayalam']}\n", 1937 | "india = DataFrame(states, columns =['State', 'Population', 'Language'])\n", 1938 | "india" 1939 | ], 1940 | "language": "python", 1941 | "metadata": {}, 1942 | "outputs": [ 1943 | { 1944 | "html": [ 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 | " \n", 1965 | " \n", 1966 | " \n", 1967 | " \n", 1968 | " \n", 1969 | " \n", 1970 | " \n", 1971 | " \n", 1972 | " \n", 1973 | " \n", 1974 | " \n", 1975 | " \n", 1976 | " \n", 1977 | " \n", 1978 | " \n", 1979 | " \n", 1980 | " \n", 1981 | " \n", 1982 | " \n", 1983 | " \n", 1984 | " \n", 1985 | " \n", 1986 | " \n", 1987 | "
StatePopulationLanguage
0 Gujarat 36 Gujarati
1 Tamil Nadu 44 Tamil
2 Andhra 67 Telugu
3 Karnataka 89 Kannada
4 Kerala 34 Malayalam
\n", 1988 | "
" 1989 | ], 1990 | "metadata": {}, 1991 | "output_type": "pyout", 1992 | "prompt_number": 111, 1993 | "text": [ 1994 | " State Population Language\n", 1995 | "0 Gujarat 36 Gujarati\n", 1996 | "1 Tamil Nadu 44 Tamil\n", 1997 | "2 Andhra 67 Telugu\n", 1998 | "3 Karnataka 89 Kannada\n", 1999 | "4 Kerala 34 Malayalam" 2000 | ] 2001 | } 2002 | ], 2003 | "prompt_number": 111 2004 | }, 2005 | { 2006 | "cell_type": "code", 2007 | "collapsed": false, 2008 | "input": [ 2009 | "india[['Population', 'Language']] # retrieve data from data frame" 2010 | ], 2011 | "language": "python", 2012 | "metadata": {}, 2013 | "outputs": [ 2014 | { 2015 | "html": [ 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 | " \n", 2041 | " \n", 2042 | " \n", 2043 | " \n", 2044 | " \n", 2045 | " \n", 2046 | " \n", 2047 | " \n", 2048 | " \n", 2049 | " \n", 2050 | " \n", 2051 | " \n", 2052 | "
PopulationLanguage
0 36 Gujarati
1 44 Tamil
2 67 Telugu
3 89 Kannada
4 34 Malayalam
\n", 2053 | "
" 2054 | ], 2055 | "metadata": {}, 2056 | "output_type": "pyout", 2057 | "prompt_number": 114, 2058 | "text": [ 2059 | " Population Language\n", 2060 | "0 36 Gujarati\n", 2061 | "1 44 Tamil\n", 2062 | "2 67 Telugu\n", 2063 | "3 89 Kannada\n", 2064 | "4 34 Malayalam" 2065 | ] 2066 | } 2067 | ], 2068 | "prompt_number": 114 2069 | }, 2070 | { 2071 | "cell_type": "code", 2072 | "collapsed": false, 2073 | "input": [ 2074 | "india[india['Population'] > 50] # returns data for population greater than 50" 2075 | ], 2076 | "language": "python", 2077 | "metadata": {}, 2078 | "outputs": [ 2079 | { 2080 | "html": [ 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 | " \n", 2104 | " \n", 2105 | "
StatePopulationLanguage
2 Andhra 67 Telugu
3 Karnataka 89 Kannada
\n", 2106 | "
" 2107 | ], 2108 | "metadata": {}, 2109 | "output_type": "pyout", 2110 | "prompt_number": 115, 2111 | "text": [ 2112 | " State Population Language\n", 2113 | "2 Andhra 67 Telugu\n", 2114 | "3 Karnataka 89 Kannada" 2115 | ] 2116 | } 2117 | ], 2118 | "prompt_number": 115 2119 | }, 2120 | { 2121 | "cell_type": "code", 2122 | "collapsed": false, 2123 | "input": [ 2124 | "india[:3] # first three rows" 2125 | ], 2126 | "language": "python", 2127 | "metadata": {}, 2128 | "outputs": [ 2129 | { 2130 | "html": [ 2131 | "
\n", 2132 | "\n", 2133 | " \n", 2134 | " \n", 2135 | " \n", 2136 | " \n", 2137 | " \n", 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 | "
StatePopulationLanguage
0 Gujarat 36 Gujarati
1 Tamil Nadu 44 Tamil
2 Andhra 67 Telugu
\n", 2162 | "
" 2163 | ], 2164 | "metadata": {}, 2165 | "output_type": "pyout", 2166 | "prompt_number": 117, 2167 | "text": [ 2168 | " State Population Language\n", 2169 | "0 Gujarat 36 Gujarati\n", 2170 | "1 Tamil Nadu 44 Tamil\n", 2171 | "2 Andhra 67 Telugu" 2172 | ] 2173 | } 2174 | ], 2175 | "prompt_number": 117 2176 | }, 2177 | { 2178 | "cell_type": "code", 2179 | "collapsed": false, 2180 | "input": [ 2181 | "# for selecting specific rows and columns, you can use ix function\n", 2182 | "import pandas as pd\n", 2183 | "states ={'State' :['Gujarat', 'Tamil Nadu', ' Andhra', 'Karnataka', 'Kerala'],\n", 2184 | " 'Population': [36, 44, 67,89,34],\n", 2185 | " 'Language' :['Gujarati', 'Tamil', 'Telugu', 'Kannada', 'Malayalam']}\n", 2186 | "india = DataFrame(states, columns =['State', 'Population', 'Language'], index =['a', 'b', 'c', 'd', 'e'])\n", 2187 | "india" 2188 | ], 2189 | "language": "python", 2190 | "metadata": {}, 2191 | "outputs": [ 2192 | { 2193 | "html": [ 2194 | "
\n", 2195 | "\n", 2196 | " \n", 2197 | " \n", 2198 | " \n", 2199 | " \n", 2200 | " \n", 2201 | " \n", 2202 | " \n", 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 | " \n", 2231 | " \n", 2232 | " \n", 2233 | " \n", 2234 | " \n", 2235 | " \n", 2236 | "
StatePopulationLanguage
a Gujarat 36 Gujarati
b Tamil Nadu 44 Tamil
c Andhra 67 Telugu
d Karnataka 89 Kannada
e Kerala 34 Malayalam
\n", 2237 | "
" 2238 | ], 2239 | "metadata": {}, 2240 | "output_type": "pyout", 2241 | "prompt_number": 4, 2242 | "text": [ 2243 | " State Population Language\n", 2244 | "a Gujarat 36 Gujarati\n", 2245 | "b Tamil Nadu 44 Tamil\n", 2246 | "c Andhra 67 Telugu\n", 2247 | "d Karnataka 89 Kannada\n", 2248 | "e Kerala 34 Malayalam" 2249 | ] 2250 | } 2251 | ], 2252 | "prompt_number": 4 2253 | }, 2254 | { 2255 | "cell_type": "code", 2256 | "collapsed": false, 2257 | "input": [ 2258 | "india.ix[['a','b'], ['State','Language']] # this is how you select subset of rows" 2259 | ], 2260 | "language": "python", 2261 | "metadata": {}, 2262 | "outputs": [ 2263 | { 2264 | "html": [ 2265 | "
\n", 2266 | "\n", 2267 | " \n", 2268 | " \n", 2269 | " \n", 2270 | " \n", 2271 | " \n", 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 | "
StateLanguage
a Gujarat Gujarati
b Tamil Nadu Tamil
\n", 2287 | "
" 2288 | ], 2289 | "metadata": {}, 2290 | "output_type": "pyout", 2291 | "prompt_number": 128, 2292 | "text": [ 2293 | " State Language\n", 2294 | "a Gujarat Gujarati\n", 2295 | "b Tamil Nadu Tamil" 2296 | ] 2297 | } 2298 | ], 2299 | "prompt_number": 128 2300 | } 2301 | ], 2302 | "metadata": {} 2303 | } 2304 | ] 2305 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Pandas-basics 2 | ============= 3 | 4 | Pandas basics. 5 | -------------------------------------------------------------------------------- /pics/Constructors.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manujeevanprakash/Pandas-basics/791f986188dc5de0e4513332af6f6586717c2a7a/pics/Constructors.PNG --------------------------------------------------------------------------------