├── 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 | " Language | \n",
414 | " Population | \n",
415 | " State | \n",
416 | "
\n",
417 | " \n",
418 | " \n",
419 | " \n",
420 | " 0 | \n",
421 | " Gujarati | \n",
422 | " 36 | \n",
423 | " Gujarat | \n",
424 | "
\n",
425 | " \n",
426 | " 1 | \n",
427 | " Tamil | \n",
428 | " 44 | \n",
429 | " Tamil Nadu | \n",
430 | "
\n",
431 | " \n",
432 | " 2 | \n",
433 | " Telugu | \n",
434 | " 67 | \n",
435 | " Andhra | \n",
436 | "
\n",
437 | " \n",
438 | " 3 | \n",
439 | " Kannada | \n",
440 | " 89 | \n",
441 | " Karnataka | \n",
442 | "
\n",
443 | " \n",
444 | " 4 | \n",
445 | " Malayalam | \n",
446 | " 34 | \n",
447 | " Kerala | \n",
448 | "
\n",
449 | " \n",
450 | "
\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 | " State | \n",
485 | " Language | \n",
486 | " Population | \n",
487 | "
\n",
488 | " \n",
489 | " \n",
490 | " \n",
491 | " 0 | \n",
492 | " Gujarat | \n",
493 | " Gujarati | \n",
494 | " 36 | \n",
495 | "
\n",
496 | " \n",
497 | " 1 | \n",
498 | " Tamil Nadu | \n",
499 | " Tamil | \n",
500 | " 44 | \n",
501 | "
\n",
502 | " \n",
503 | " 2 | \n",
504 | " Andhra | \n",
505 | " Telugu | \n",
506 | " 67 | \n",
507 | "
\n",
508 | " \n",
509 | " 3 | \n",
510 | " Karnataka | \n",
511 | " Kannada | \n",
512 | " 89 | \n",
513 | "
\n",
514 | " \n",
515 | " 4 | \n",
516 | " Kerala | \n",
517 | " Malayalam | \n",
518 | " 34 | \n",
519 | "
\n",
520 | " \n",
521 | "
\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 | " State | \n",
644 | " Language | \n",
645 | " Population | \n",
646 | " Per Capita Income | \n",
647 | "
\n",
648 | " \n",
649 | " \n",
650 | " \n",
651 | " a | \n",
652 | " Gujarat | \n",
653 | " Gujarati | \n",
654 | " 36 | \n",
655 | " NaN | \n",
656 | "
\n",
657 | " \n",
658 | " b | \n",
659 | " Tamil Nadu | \n",
660 | " Tamil | \n",
661 | " 44 | \n",
662 | " NaN | \n",
663 | "
\n",
664 | " \n",
665 | " c | \n",
666 | " Andhra | \n",
667 | " Telugu | \n",
668 | " 67 | \n",
669 | " NaN | \n",
670 | "
\n",
671 | " \n",
672 | " d | \n",
673 | " Karnataka | \n",
674 | " Kannada | \n",
675 | " 89 | \n",
676 | " NaN | \n",
677 | "
\n",
678 | " \n",
679 | " e | \n",
680 | " Kerala | \n",
681 | " Malayalam | \n",
682 | " 34 | \n",
683 | " NaN | \n",
684 | "
\n",
685 | " \n",
686 | "
\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 | " State | \n",
722 | " Language | \n",
723 | " Population | \n",
724 | " Per Capita Income | \n",
725 | "
\n",
726 | " \n",
727 | " \n",
728 | " \n",
729 | " a | \n",
730 | " Gujarat | \n",
731 | " Gujarati | \n",
732 | " 36 | \n",
733 | " 99 | \n",
734 | "
\n",
735 | " \n",
736 | " b | \n",
737 | " Tamil Nadu | \n",
738 | " Tamil | \n",
739 | " 44 | \n",
740 | " 99 | \n",
741 | "
\n",
742 | " \n",
743 | " c | \n",
744 | " Andhra | \n",
745 | " Telugu | \n",
746 | " 67 | \n",
747 | " 99 | \n",
748 | "
\n",
749 | " \n",
750 | " d | \n",
751 | " Karnataka | \n",
752 | " Kannada | \n",
753 | " 89 | \n",
754 | " 99 | \n",
755 | "
\n",
756 | " \n",
757 | " e | \n",
758 | " Kerala | \n",
759 | " Malayalam | \n",
760 | " 34 | \n",
761 | " 99 | \n",
762 | "
\n",
763 | " \n",
764 | "
\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 | " State | \n",
800 | " Language | \n",
801 | " Population | \n",
802 | " Per Capita Income | \n",
803 | "
\n",
804 | " \n",
805 | " \n",
806 | " \n",
807 | " a | \n",
808 | " Gujarat | \n",
809 | " Gujarati | \n",
810 | " 36 | \n",
811 | " 0 | \n",
812 | "
\n",
813 | " \n",
814 | " b | \n",
815 | " Tamil Nadu | \n",
816 | " Tamil | \n",
817 | " 44 | \n",
818 | " 1 | \n",
819 | "
\n",
820 | " \n",
821 | " c | \n",
822 | " Andhra | \n",
823 | " Telugu | \n",
824 | " 67 | \n",
825 | " 2 | \n",
826 | "
\n",
827 | " \n",
828 | " d | \n",
829 | " Karnataka | \n",
830 | " Kannada | \n",
831 | " 89 | \n",
832 | " 3 | \n",
833 | "
\n",
834 | " \n",
835 | " e | \n",
836 | " Kerala | \n",
837 | " Malayalam | \n",
838 | " 34 | \n",
839 | " 4 | \n",
840 | "
\n",
841 | " \n",
842 | "
\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 | " State | \n",
880 | " Language | \n",
881 | " Population | \n",
882 | " Per Capita Income | \n",
883 | "
\n",
884 | " \n",
885 | " \n",
886 | " \n",
887 | " a | \n",
888 | " Gujarat | \n",
889 | " Gujarati | \n",
890 | " 36 | \n",
891 | " NaN | \n",
892 | "
\n",
893 | " \n",
894 | " b | \n",
895 | " Tamil Nadu | \n",
896 | " Tamil | \n",
897 | " 44 | \n",
898 | " 44 | \n",
899 | "
\n",
900 | " \n",
901 | " c | \n",
902 | " Andhra | \n",
903 | " Telugu | \n",
904 | " 67 | \n",
905 | " 33 | \n",
906 | "
\n",
907 | " \n",
908 | " d | \n",
909 | " Karnataka | \n",
910 | " Kannada | \n",
911 | " 89 | \n",
912 | " 22 | \n",
913 | "
\n",
914 | " \n",
915 | " e | \n",
916 | " Kerala | \n",
917 | " Malayalam | \n",
918 | " 34 | \n",
919 | " NaN | \n",
920 | "
\n",
921 | " \n",
922 | "
\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 | " State | \n",
972 | " Language | \n",
973 | " Population | \n",
974 | " Per Capita Income | \n",
975 | "
\n",
976 | " \n",
977 | " \n",
978 | " \n",
979 | " a | \n",
980 | " Gujarat | \n",
981 | " Gujarati | \n",
982 | " 36 | \n",
983 | " NaN | \n",
984 | "
\n",
985 | " \n",
986 | " b | \n",
987 | " Tamil Nadu | \n",
988 | " Tamil | \n",
989 | " 44 | \n",
990 | " 44 | \n",
991 | "
\n",
992 | " \n",
993 | " c | \n",
994 | " Andhra | \n",
995 | " Telugu | \n",
996 | " 67 | \n",
997 | " 33 | \n",
998 | "
\n",
999 | " \n",
1000 | " d | \n",
1001 | " Karnataka | \n",
1002 | " Kannada | \n",
1003 | " 89 | \n",
1004 | " 22 | \n",
1005 | "
\n",
1006 | " \n",
1007 | " e | \n",
1008 | " Kerala | \n",
1009 | " Malayalam | \n",
1010 | " 34 | \n",
1011 | " NaN | \n",
1012 | "
\n",
1013 | " \n",
1014 | "
\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 | " 2010 | \n",
1062 | " 2012 | \n",
1063 | " 2014 | \n",
1064 | "
\n",
1065 | " \n",
1066 | " \n",
1067 | " \n",
1068 | " Modi | \n",
1069 | " 72 | \n",
1070 | " 78 | \n",
1071 | " 98 | \n",
1072 | "
\n",
1073 | " \n",
1074 | " Rahul | \n",
1075 | " 55 | \n",
1076 | " 34 | \n",
1077 | " 22 | \n",
1078 | "
\n",
1079 | " \n",
1080 | "
\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 | " Modi | \n",
1112 | " Rahul | \n",
1113 | "
\n",
1114 | " \n",
1115 | " \n",
1116 | " \n",
1117 | " 2012 | \n",
1118 | " 78 | \n",
1119 | " 34 | \n",
1120 | "
\n",
1121 | " \n",
1122 | " 2014 | \n",
1123 | " 98 | \n",
1124 | " 22 | \n",
1125 | "
\n",
1126 | " \n",
1127 | " 2016 | \n",
1128 | " NaN | \n",
1129 | " NaN | \n",
1130 | "
\n",
1131 | " \n",
1132 | "
\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 | " Gujarat | \n",
1167 | " India | \n",
1168 | "
\n",
1169 | " \n",
1170 | " \n",
1171 | " \n",
1172 | " 2010 | \n",
1173 | " 72 | \n",
1174 | " 55 | \n",
1175 | "
\n",
1176 | " \n",
1177 | " 2012 | \n",
1178 | " 78 | \n",
1179 | " 34 | \n",
1180 | "
\n",
1181 | " \n",
1182 | "
\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\nz737Al66Zo9a65fE/CyMxb01x7g7F92XZ+B5OzNv6HhO3Ms9tsZCfs86pL7y0TN5a8/rg0se6aN8\nKM55uPe5Pj3bdODk3LtQK7DHD3jBuAUbCj30wVv6PS+J7PcMOVY2BDIP4Uc+/K/Aag+xt7xk3rNO\n6Wvl9wgvJXkosrbEwr7yW5SMxz7uOSDuGc9LIE4e/nvjuhrPmifX7B5eGsujxvCSmJ+FsfgBMsd4\ndC6i73l9C55Dnrtb5DlxL2dtc+7vXYep7weGHTmXK+7t/ypk3LfGODk9WhxzeLOos0NvycoekCwG\nOTbKBpey/khubPT9BCteTKznQaDOiwl5tsO8vCDTHzFhy0PlJ2T6ZONyszNec3Bc+MRG1COpQ2z0\nMWMi92WX8/jVWI3duQPyXCdgbZBJeYCha9Kva+p+Yp1dS3TESwj5fKFnjGnH/qBMvEJZ/+419Fhr\nUtqv9qn2cw8xVmQSc6HufE6wIf75Esi9TP+OiaSudTnPM2ZYPSvYOF5k43KM5Ku5n2PMPkmOFShr\nj7/0DWfGZBnwxThWce3WbPfcGstcS3RyP6e8ml/sKRsv2I9zru7Kfq4z/eGLMjIYg3rM8Ry/a+qa\niLGQmLe00S9jyHNRPfIzfSOjxxoaO/M7y/rSRj/uh1xXc7llK9SZHPvZM0V9yfLcL64jiTlRlzT3\nckKZvklp43NzZr5X+wi0pQ271Z5wv871SNm45hjP8ONoD8ApwRBcThS5g1K2nQV0ANRpn7pODovO\nIN3YtLswQh066Lvp04ZJcWJ4UPGtTALKxEWOLjGxYPjDj3HQB+2U0QXs3AiOA2jHBnLsMGOynf7o\n29i/Gs5DknXOITnzB6yJe4p1kLTL+c/95lyzp2hn/m+Bj7lfZVVmDxgze8/9ZJ36c0+A9pBjwE/u\nG+Tc89TN5yRhntDHD2PWHwcE8wn4wD9t4Dzbp3O1elbQyTPBfY0P+1rNvfr0oy8wloS6nFv8KdPH\nmTHZHznxGueMy1j0byypk/O/W0vs7BNSnvNLjNobL9iOLrHu7IlprjNjVMc9vPJHHbI6+qZu9YzR\nhzI5oI8uZf0AZedJm6O+rVMPmJNZVgfIc28wfsruP/pXF27ZSuplTBkvMv7nmZK2kOWj/QLEQH3u\nZe1pM0bKxA7aqJeyMdtHxr/aR5C2MPcE/dlP9gU7mZzyWb7P3g10zKAcaNannAHtZHITi+sA8e/A\nnSihjgkiZzOgywLmAwS04wufykKZ5KLiw3Y3WNqQUwbiZOxuLONDxhbUX8VOG/XqE7eL/9XIeZWs\nIye5Tq4lueskabeTc52pYw1vwfp4w8dGe5g+sl15VZfM9qM95L6hjXT0nIhz5mGW5BziazXP9uk4\nV88KUI/sXFHOfZ12+nOMkDK5upJ1Oxl2YwL7yNhWce3851x4UCcrOxIyKK/m17bpM+2n7sredXYc\ntGfc6W8lZ2y7Z4yceVWG3blIvWNa9TdlfbIu2DqeWV7ZpJx1qQu3bCX1dvJq/0DqwCwD5bRVlpx/\n7U3OMzpJ7ofscyWv9uGMn/rVnrAOvdQ/klP/DL9YnUDHbEAezFWHyhnQTk47ccB5WxQnz8OYlwYP\nCBtfXScufdOeZdsZR5ZnUj9jZiOmjhtjpw+rmHzhUbd6aXwF5jxB1jlnrpNtmSTtdrI2Jh/CHdiy\n3h6y2FAH7kH2q2S78qoOVnsiZW2BPjiUU//oOUnSjxA7+09/wFwwVp4nbTI5V7OeBKwRsnsZ2bFA\n6pPwl7GlTJ62kHUr+daYwD6mfSZsZrsyrJ7bo7UkIYOyeaacD/c7pD0gr+yn3s4u61eyeSaxzXOY\nRB0cnYs+I6v+pkxOmbn1HbMqr2xSzrrUhVu2kno7mTyTz0nqAO8g5ghuPfurvTz9Qdqszoi0Wcnm\nmVbxr/Qg36sr/Smre5ZfrE6gYyYOedWhcga0k9MucQPmAwr2y4PhImDvontYz8MFnEQg98avzYwj\n68hTlziAOP2EuNKHXUwebup9RXKeJOvIc52cQy8KSdrtZHIPzFvQH3sq9bHHH7B+HjSS7crZp3W7\nPZGytsA+41nwhaDO7jlJ7IM+RX/ZB/h8+ays5pl6+098MRnL1KM85z7797CGaQtZt5JvjYncNvTQ\nB8ozrqxDti/wuXXtb61lxqN8tI9t84xJe9d/ZT/XOXXSbhVPyivfkvq+OKlzDua5iC/nGW71DfoU\n1so2sLyzyTbrUhdu2Urq7WTyuX8gdYD3FenMs7/ay9MfrGxca+p39spn1/pILy8n6u9k9c7yi9UJ\n0jETYYc8pDmR5BnQTlZ34uabC+4hA04IC40eMTiB6uGbycxDCWxzMdkwPGg+WPi0DntfjukDqEcP\nbIfUW8WU9dp/RZwn5obEXOfcOV+uE7DOHHroegiD80ld+kiZuSa5J45g7d0T6uKHvvWJnFBHW8r0\nxz4xPup2eyJlcspAzn5PH7B7TiY+n4ybpI+8rOPbQ5O4nGfIuWI881nBF/rGTB/quU6ruVefvnfP\nkmTdSjY/GpN61lFexUV5rpnog3ZQB9vUVbaeuFwvmPNr/+qTg/2xxvjADlbrQ12uM2Vs8KGd/o5k\nfeODuZLUcZ6py3pwLYkln5Fdfynrk3kF7Kmb5ZVNyvTv/st5h1u24tq6x7VJebV/QB3qcgy39kvK\nuZezT5k26Ouf+rTZyat9BKkDc084XvUcDzHkfKcfcspn+d77DXDsBllNmpeVXADYyepO9Mfgk+mH\n/pStZ5Mwifq2jeSk2GY/TCp26jGx1Dke26hns0vOATk+IeOBGZNQvmehPhu5NqR8GQA5ZdeJB4Ky\n68J6CHuFtaFefUh/2Kvj3lmhfSZslbFl7Se00V/K7CPW3phtX+2JlMkpg/ts+jDO+ZxM0NcWG/05\nF2AszmnakAt9zWcFWw8t6vCfc43Oau6NH3sScwXoU58XLsqOeyWfHZNt7DXaV3Ht1gwcI7HLrbWk\nL8oZG205v8ZG8kUB1qvrnEz7WUd8lImLhKwO7bdk/Th3kDrMETJ16DA2yf1Ku8w+VrI+c2yMeZZX\nNinPdVUXbtnKa84UdUi0515e7Zfc86u9nH1K2uecW582R3LOraQOpB6x2k7yWdjtc+Uc4xm+934R\nWDgG+ZlhcVikWy+VUnZ89OckD/vy+eClfQW6zz4ml1oxbn7cJq+yqZ+Bn8jyk1Ep9/AZnpO+MMqz\n4Lkg+Q0fn+LLx+JSJ4NfE31mGB/jLOWlfIbnJL/mLeWR+E8bJC4l/jNh+Tj0ZCillFLKRfjjH/8f\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 | " politicians | \n",
1238 | " Gujarat | \n",
1239 | " India | \n",
1240 | "
\n",
1241 | " \n",
1242 | " year | \n",
1243 | " | \n",
1244 | " | \n",
1245 | "
\n",
1246 | " \n",
1247 | " \n",
1248 | " \n",
1249 | " 2010 | \n",
1250 | " 72 | \n",
1251 | " 55 | \n",
1252 | "
\n",
1253 | " \n",
1254 | " 2012 | \n",
1255 | " 78 | \n",
1256 | " 34 | \n",
1257 | "
\n",
1258 | " \n",
1259 | "
\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 | " Gujarat | \n",
1538 | " Tamil Nadu | \n",
1539 | " Kerala | \n",
1540 | "
\n",
1541 | " \n",
1542 | " \n",
1543 | " \n",
1544 | " a | \n",
1545 | " 0 | \n",
1546 | " 1 | \n",
1547 | " 2 | \n",
1548 | "
\n",
1549 | " \n",
1550 | " b | \n",
1551 | " 3 | \n",
1552 | " 4 | \n",
1553 | " 5 | \n",
1554 | "
\n",
1555 | " \n",
1556 | " c | \n",
1557 | " 6 | \n",
1558 | " 7 | \n",
1559 | " 8 | \n",
1560 | "
\n",
1561 | " \n",
1562 | "
\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 | " Gujarat | \n",
1596 | " Assam | \n",
1597 | " Kerala | \n",
1598 | "
\n",
1599 | " \n",
1600 | " \n",
1601 | " \n",
1602 | " a | \n",
1603 | " 0 | \n",
1604 | " NaN | \n",
1605 | " 2 | \n",
1606 | "
\n",
1607 | " \n",
1608 | " b | \n",
1609 | " 3 | \n",
1610 | " NaN | \n",
1611 | " 5 | \n",
1612 | "
\n",
1613 | " \n",
1614 | " c | \n",
1615 | " 6 | \n",
1616 | " NaN | \n",
1617 | " 8 | \n",
1618 | "
\n",
1619 | " \n",
1620 | " d | \n",
1621 | " NaN | \n",
1622 | " NaN | \n",
1623 | " NaN | \n",
1624 | "
\n",
1625 | " \n",
1626 | "
\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 | " State | \n",
1731 | " Population | \n",
1732 | " Language | \n",
1733 | "
\n",
1734 | " \n",
1735 | " \n",
1736 | " \n",
1737 | " 2 | \n",
1738 | " Andhra | \n",
1739 | " 67 | \n",
1740 | " Telugu | \n",
1741 | "
\n",
1742 | " \n",
1743 | " 3 | \n",
1744 | " Karnataka | \n",
1745 | " 89 | \n",
1746 | " Kannada | \n",
1747 | "
\n",
1748 | " \n",
1749 | " 4 | \n",
1750 | " Kerala | \n",
1751 | " 34 | \n",
1752 | " Malayalam | \n",
1753 | "
\n",
1754 | " \n",
1755 | "
\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 | " Language | \n",
1788 | "
\n",
1789 | " \n",
1790 | " \n",
1791 | " \n",
1792 | " 0 | \n",
1793 | " Gujarati | \n",
1794 | "
\n",
1795 | " \n",
1796 | " 1 | \n",
1797 | " Tamil | \n",
1798 | "
\n",
1799 | " \n",
1800 | " 2 | \n",
1801 | " Telugu | \n",
1802 | "
\n",
1803 | " \n",
1804 | " 3 | \n",
1805 | " Kannada | \n",
1806 | "
\n",
1807 | " \n",
1808 | " 4 | \n",
1809 | " Malayalam | \n",
1810 | "
\n",
1811 | " \n",
1812 | "
\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 | " State | \n",
1951 | " Population | \n",
1952 | " Language | \n",
1953 | "
\n",
1954 | " \n",
1955 | " \n",
1956 | " \n",
1957 | " 0 | \n",
1958 | " Gujarat | \n",
1959 | " 36 | \n",
1960 | " Gujarati | \n",
1961 | "
\n",
1962 | " \n",
1963 | " 1 | \n",
1964 | " Tamil Nadu | \n",
1965 | " 44 | \n",
1966 | " Tamil | \n",
1967 | "
\n",
1968 | " \n",
1969 | " 2 | \n",
1970 | " Andhra | \n",
1971 | " 67 | \n",
1972 | " Telugu | \n",
1973 | "
\n",
1974 | " \n",
1975 | " 3 | \n",
1976 | " Karnataka | \n",
1977 | " 89 | \n",
1978 | " Kannada | \n",
1979 | "
\n",
1980 | " \n",
1981 | " 4 | \n",
1982 | " Kerala | \n",
1983 | " 34 | \n",
1984 | " Malayalam | \n",
1985 | "
\n",
1986 | " \n",
1987 | "
\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 | " Population | \n",
2022 | " Language | \n",
2023 | "
\n",
2024 | " \n",
2025 | " \n",
2026 | " \n",
2027 | " 0 | \n",
2028 | " 36 | \n",
2029 | " Gujarati | \n",
2030 | "
\n",
2031 | " \n",
2032 | " 1 | \n",
2033 | " 44 | \n",
2034 | " Tamil | \n",
2035 | "
\n",
2036 | " \n",
2037 | " 2 | \n",
2038 | " 67 | \n",
2039 | " Telugu | \n",
2040 | "
\n",
2041 | " \n",
2042 | " 3 | \n",
2043 | " 89 | \n",
2044 | " Kannada | \n",
2045 | "
\n",
2046 | " \n",
2047 | " 4 | \n",
2048 | " 34 | \n",
2049 | " Malayalam | \n",
2050 | "
\n",
2051 | " \n",
2052 | "
\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 | " State | \n",
2087 | " Population | \n",
2088 | " Language | \n",
2089 | "
\n",
2090 | " \n",
2091 | " \n",
2092 | " \n",
2093 | " 2 | \n",
2094 | " Andhra | \n",
2095 | " 67 | \n",
2096 | " Telugu | \n",
2097 | "
\n",
2098 | " \n",
2099 | " 3 | \n",
2100 | " Karnataka | \n",
2101 | " 89 | \n",
2102 | " Kannada | \n",
2103 | "
\n",
2104 | " \n",
2105 | "
\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 | " State | \n",
2137 | " Population | \n",
2138 | " Language | \n",
2139 | "
\n",
2140 | " \n",
2141 | " \n",
2142 | " \n",
2143 | " 0 | \n",
2144 | " Gujarat | \n",
2145 | " 36 | \n",
2146 | " Gujarati | \n",
2147 | "
\n",
2148 | " \n",
2149 | " 1 | \n",
2150 | " Tamil Nadu | \n",
2151 | " 44 | \n",
2152 | " Tamil | \n",
2153 | "
\n",
2154 | " \n",
2155 | " 2 | \n",
2156 | " Andhra | \n",
2157 | " 67 | \n",
2158 | " Telugu | \n",
2159 | "
\n",
2160 | " \n",
2161 | "
\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 | " State | \n",
2200 | " Population | \n",
2201 | " Language | \n",
2202 | "
\n",
2203 | " \n",
2204 | " \n",
2205 | " \n",
2206 | " a | \n",
2207 | " Gujarat | \n",
2208 | " 36 | \n",
2209 | " Gujarati | \n",
2210 | "
\n",
2211 | " \n",
2212 | " b | \n",
2213 | " Tamil Nadu | \n",
2214 | " 44 | \n",
2215 | " Tamil | \n",
2216 | "
\n",
2217 | " \n",
2218 | " c | \n",
2219 | " Andhra | \n",
2220 | " 67 | \n",
2221 | " Telugu | \n",
2222 | "
\n",
2223 | " \n",
2224 | " d | \n",
2225 | " Karnataka | \n",
2226 | " 89 | \n",
2227 | " Kannada | \n",
2228 | "
\n",
2229 | " \n",
2230 | " e | \n",
2231 | " Kerala | \n",
2232 | " 34 | \n",
2233 | " Malayalam | \n",
2234 | "
\n",
2235 | " \n",
2236 | "
\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 | " State | \n",
2271 | " Language | \n",
2272 | "
\n",
2273 | " \n",
2274 | " \n",
2275 | " \n",
2276 | " a | \n",
2277 | " Gujarat | \n",
2278 | " Gujarati | \n",
2279 | "
\n",
2280 | " \n",
2281 | " b | \n",
2282 | " Tamil Nadu | \n",
2283 | " Tamil | \n",
2284 | "
\n",
2285 | " \n",
2286 | "
\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
--------------------------------------------------------------------------------