Created
November 1, 2014 05:30
-
-
Save manujeevanprakash/996d18985be612072ee0 to your computer and use it in GitHub Desktop.
Basics of Pandas
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"metadata": { | |
"name": "pandas.ipynb", | |
"signature": "sha256:a0a225575bcd9081a8c5eb519fd740c0b6a46d6ab6b5a239e22401b0043d7b99" | |
}, | |
"nbformat": 3, | |
"nbformat_minor": 0, | |
"worksheets": [ | |
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#Pandas\n", | |
"Pandas contains high level data structures and manipulation tools to make data analysis fast and easy in Python." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"import pandas as pd #I am importing pandas as pd\n", | |
"from pandas import Series, DataFrame # Series and Data Frame are two data structures available in python" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 2 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Series\n", | |
"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." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"mjp= Series([5,4,3,2,1])# a simple series\n", | |
"print mjp # A series is represented by index on the left and values on the right\n", | |
"print mjp.values # similar to dictionary. \".values\" command returns values in a series " | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"0 5\n", | |
"1 4\n", | |
"2 3\n", | |
"3 2\n", | |
"4 1\n", | |
"dtype: int64\n", | |
"[5 4 3 2 1]\n" | |
] | |
} | |
], | |
"prompt_number": 13 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"print mjp.index # returns the index values of the series" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"Int64Index([0, 1, 2, 3, 4], dtype='int64')\n" | |
] | |
} | |
], | |
"prompt_number": 14 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"jeeva = Series([5,4,3,2,1,-7,-29], index =['a','b','c','d','e','f','h']) # The index is specified\n", | |
"print jeeva # try jeeva.index and jeeva.values\n", | |
"print jeeva['a'] # selecting a particular value from a Series, by using index" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"a 5\n", | |
"b 4\n", | |
"c 3\n", | |
"d 2\n", | |
"e 1\n", | |
"f -7\n", | |
"h -29\n", | |
"dtype: int64\n", | |
"5\n" | |
] | |
} | |
], | |
"prompt_number": 27 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"jeeva['d'] = 9 # change the value of a particular element in series\n", | |
"print jeeva\n", | |
"jeeva[['a','b','c']] # select a group of values" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"a 5\n", | |
"b 4\n", | |
"c 3\n", | |
"d 9\n", | |
"e 1\n", | |
"f -7\n", | |
"h -29\n", | |
"dtype: int64\n" | |
] | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 28, | |
"text": [ | |
"a 5\n", | |
"b 4\n", | |
"c 3\n", | |
"dtype: int64" | |
] | |
} | |
], | |
"prompt_number": 28 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"print jeeva[jeeva>0] # returns only the positive values\n", | |
"print jeeva *2 # multiplies 2 to each element of a series" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"a 5\n", | |
"b 4\n", | |
"c 3\n", | |
"d 9\n", | |
"e 1\n", | |
"dtype: int64\n", | |
"a 10\n", | |
"b 8\n", | |
"c 6\n", | |
"d 18\n", | |
"e 2\n", | |
"f -14\n", | |
"h -58\n", | |
"dtype: int64\n" | |
] | |
} | |
], | |
"prompt_number": 31 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"import numpy as np\n", | |
"np.mean(jeeva) # you can apply numpy functions to a Series" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 34, | |
"text": [ | |
"-2.0" | |
] | |
} | |
], | |
"prompt_number": 34 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"print 'b' in jeeva # checks whether the index is present in Series or not\n", | |
"print 'z' in jeeva" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"True\n", | |
"False\n" | |
] | |
} | |
], | |
"prompt_number": 37 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"player_salary ={'Rooney': 50000, 'Messi': 75000, 'Ronaldo': 85000, 'Fabregas':40000, 'Van persie': 67000} \n", | |
"new_player = Series(player_salary)# converting a dictionary to a series\n", | |
"print new_player # the series has keys of a dictionary" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"Fabregas 40000\n", | |
"Messi 75000\n", | |
"Ronaldo 85000\n", | |
"Rooney 50000\n", | |
"Van persie 67000\n", | |
"dtype: int64\n" | |
] | |
} | |
], | |
"prompt_number": 46 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"players =['Klose', 'Messi', 'Ronaldo', 'Van persie', 'Ballack'] \n", | |
"player_1 =Series(player_salary, index= players)\n", | |
"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" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"Klose NaN\n", | |
"Messi 75000\n", | |
"Ronaldo 85000\n", | |
"Van persie 67000\n", | |
"Ballack NaN\n", | |
"dtype: float64\n" | |
] | |
} | |
], | |
"prompt_number": 49 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"pd.isnull(player_1)#checks for Null values in player_1, pd denotes a pandas dataframe" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 53, | |
"text": [ | |
"Klose True\n", | |
"Messi False\n", | |
"Ronaldo False\n", | |
"Van persie False\n", | |
"Ballack True\n", | |
"dtype: bool" | |
] | |
} | |
], | |
"prompt_number": 53 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"pd.notnull(player_1)# Checks for null values that are not Null" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 52, | |
"text": [ | |
"Klose False\n", | |
"Messi True\n", | |
"Ronaldo True\n", | |
"Van persie True\n", | |
"Ballack False\n", | |
"dtype: bool" | |
] | |
} | |
], | |
"prompt_number": 52 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"player_1.name ='Bundesliga players' # name for the Series\n", | |
"player_1.index.name='Player names' #name of the index\n", | |
"player_1" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 64, | |
"text": [ | |
"Player names\n", | |
"Klose NaN\n", | |
"Messi 75000\n", | |
"Ronaldo 85000\n", | |
"Van persie 67000\n", | |
"Ballack NaN\n", | |
"Name: Bundesliga players, dtype: float64" | |
] | |
} | |
], | |
"prompt_number": 64 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"player_1.index =['Neymar', 'Hulk', 'Pirlo', 'Buffon', 'Anderson'] # is used to alter the index of Series\n", | |
"player_1 " | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 67, | |
"text": [ | |
"Neymar NaN\n", | |
"Hulk 75000\n", | |
"Pirlo 85000\n", | |
"Buffon 67000\n", | |
"Anderson NaN\n", | |
"Name: Bundesliga players, dtype: float64" | |
] | |
} | |
], | |
"prompt_number": 67 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#Data Frame\n", | |
"Data frame is a spread sheet like structure, containing ordered collection of columns. Each column can have different value type.\n", | |
"Data frame has both row index and column index." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"states ={'State' :['Gujarat', 'Tamil Nadu', ' Andhra', 'Karnataka', 'Kerala'],\n", | |
" 'Population': [36, 44, 67,89,34],\n", | |
" 'Language' :['Gujarati', 'Tamil', 'Telugu', 'Kannada', 'Malayalam']}\n", | |
"india = DataFrame(states) # creating a data frame\n", | |
"india" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Language</th>\n", | |
" <th>Population</th>\n", | |
" <th>State</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td> Gujarati</td>\n", | |
" <td> 36</td>\n", | |
" <td> Gujarat</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td> Tamil</td>\n", | |
" <td> 44</td>\n", | |
" <td> Tamil Nadu</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td> Telugu</td>\n", | |
" <td> 67</td>\n", | |
" <td> Andhra</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td> Kannada</td>\n", | |
" <td> 89</td>\n", | |
" <td> Karnataka</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td> Malayalam</td>\n", | |
" <td> 34</td>\n", | |
" <td> Kerala</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 74, | |
"text": [ | |
" Language Population State\n", | |
"0 Gujarati 36 Gujarat\n", | |
"1 Tamil 44 Tamil Nadu\n", | |
"2 Telugu 67 Andhra\n", | |
"3 Kannada 89 Karnataka\n", | |
"4 Malayalam 34 Kerala" | |
] | |
} | |
], | |
"prompt_number": 74 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"DataFrame(states, columns=['State', 'Language', 'Population']) # change the sequence of column index" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>State</th>\n", | |
" <th>Language</th>\n", | |
" <th>Population</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td> Gujarat</td>\n", | |
" <td> Gujarati</td>\n", | |
" <td> 36</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td> Tamil Nadu</td>\n", | |
" <td> Tamil</td>\n", | |
" <td> 44</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td> Andhra</td>\n", | |
" <td> Telugu</td>\n", | |
" <td> 67</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td> Karnataka</td>\n", | |
" <td> Kannada</td>\n", | |
" <td> 89</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td> Kerala</td>\n", | |
" <td> Malayalam</td>\n", | |
" <td> 34</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 75, | |
"text": [ | |
" State Language Population\n", | |
"0 Gujarat Gujarati 36\n", | |
"1 Tamil Nadu Tamil 44\n", | |
"2 Andhra Telugu 67\n", | |
"3 Karnataka Kannada 89\n", | |
"4 Kerala Malayalam 34" | |
] | |
} | |
], | |
"prompt_number": 75 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"new_farme = DataFrame(states, columns=['State', 'Language', 'Population', 'Per Capita Income'], index =['a','b','c','d','e'])\n", | |
"#if you pass a column that isnt in states, it will appear with Na values" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [], | |
"prompt_number": 82 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"print new_farme.columns\n", | |
"print new_farme['State'] # retrieveing data like dictionary" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"Index([u'State', u'Language', u'Population', u'Per Capita Income'], dtype='object')\n", | |
"a Gujarat\n", | |
"b Tamil Nadu\n", | |
"c Andhra\n", | |
"d Karnataka\n", | |
"e Kerala\n", | |
"Name: State, dtype: object\n" | |
] | |
} | |
], | |
"prompt_number": 86 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"new_farme.Population # like Series" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 89, | |
"text": [ | |
"a 36\n", | |
"b 44\n", | |
"c 67\n", | |
"d 89\n", | |
"e 34\n", | |
"Name: Population, dtype: int64" | |
] | |
} | |
], | |
"prompt_number": 89 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"new_farme.ix[3] # rows can be retrieved using .ic function\n", | |
"# here I have retrieved 3rd row" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 91, | |
"text": [ | |
"State Karnataka\n", | |
"Language Kannada\n", | |
"Population 89\n", | |
"Per Capita Income NaN\n", | |
"Name: d, dtype: object" | |
] | |
} | |
], | |
"prompt_number": 91 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
" new_farme" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>State</th>\n", | |
" <th>Language</th>\n", | |
" <th>Population</th>\n", | |
" <th>Per Capita Income</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>a</th>\n", | |
" <td> Gujarat</td>\n", | |
" <td> Gujarati</td>\n", | |
" <td> 36</td>\n", | |
" <td> NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>b</th>\n", | |
" <td> Tamil Nadu</td>\n", | |
" <td> Tamil</td>\n", | |
" <td> 44</td>\n", | |
" <td> NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>c</th>\n", | |
" <td> Andhra</td>\n", | |
" <td> Telugu</td>\n", | |
" <td> 67</td>\n", | |
" <td> NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>d</th>\n", | |
" <td> Karnataka</td>\n", | |
" <td> Kannada</td>\n", | |
" <td> 89</td>\n", | |
" <td> NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>e</th>\n", | |
" <td> Kerala</td>\n", | |
" <td> Malayalam</td>\n", | |
" <td> 34</td>\n", | |
" <td> NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 94, | |
"text": [ | |
" State Language Population Per Capita Income\n", | |
"a Gujarat Gujarati 36 NaN\n", | |
"b Tamil Nadu Tamil 44 NaN\n", | |
"c Andhra Telugu 67 NaN\n", | |
"d Karnataka Kannada 89 NaN\n", | |
"e Kerala Malayalam 34 NaN" | |
] | |
} | |
], | |
"prompt_number": 94 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"new_farme['Per Capita Income'] = 99 # the empty per capita income column can be assigned a value\n", | |
"new_farme" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>State</th>\n", | |
" <th>Language</th>\n", | |
" <th>Population</th>\n", | |
" <th>Per Capita Income</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>a</th>\n", | |
" <td> Gujarat</td>\n", | |
" <td> Gujarati</td>\n", | |
" <td> 36</td>\n", | |
" <td> 99</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>b</th>\n", | |
" <td> Tamil Nadu</td>\n", | |
" <td> Tamil</td>\n", | |
" <td> 44</td>\n", | |
" <td> 99</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>c</th>\n", | |
" <td> Andhra</td>\n", | |
" <td> Telugu</td>\n", | |
" <td> 67</td>\n", | |
" <td> 99</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>d</th>\n", | |
" <td> Karnataka</td>\n", | |
" <td> Kannada</td>\n", | |
" <td> 89</td>\n", | |
" <td> 99</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>e</th>\n", | |
" <td> Kerala</td>\n", | |
" <td> Malayalam</td>\n", | |
" <td> 34</td>\n", | |
" <td> 99</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 97, | |
"text": [ | |
" State Language Population Per Capita Income\n", | |
"a Gujarat Gujarati 36 99\n", | |
"b Tamil Nadu Tamil 44 99\n", | |
"c Andhra Telugu 67 99\n", | |
"d Karnataka Kannada 89 99\n", | |
"e Kerala Malayalam 34 99" | |
] | |
} | |
], | |
"prompt_number": 97 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"new_farme['Per Capita Income'] = np.arange(5) # assigning a value to the last column\n", | |
"new_farme" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>State</th>\n", | |
" <th>Language</th>\n", | |
" <th>Population</th>\n", | |
" <th>Per Capita Income</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>a</th>\n", | |
" <td> Gujarat</td>\n", | |
" <td> Gujarati</td>\n", | |
" <td> 36</td>\n", | |
" <td> 0</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>b</th>\n", | |
" <td> Tamil Nadu</td>\n", | |
" <td> Tamil</td>\n", | |
" <td> 44</td>\n", | |
" <td> 1</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>c</th>\n", | |
" <td> Andhra</td>\n", | |
" <td> Telugu</td>\n", | |
" <td> 67</td>\n", | |
" <td> 2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>d</th>\n", | |
" <td> Karnataka</td>\n", | |
" <td> Kannada</td>\n", | |
" <td> 89</td>\n", | |
" <td> 3</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>e</th>\n", | |
" <td> Kerala</td>\n", | |
" <td> Malayalam</td>\n", | |
" <td> 34</td>\n", | |
" <td> 4</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 99, | |
"text": [ | |
" State Language Population Per Capita Income\n", | |
"a Gujarat Gujarati 36 0\n", | |
"b Tamil Nadu Tamil 44 1\n", | |
"c Andhra Telugu 67 2\n", | |
"d Karnataka Kannada 89 3\n", | |
"e Kerala Malayalam 34 4" | |
] | |
} | |
], | |
"prompt_number": 99 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"series = Series([44,33,22], index =['b','c','d'])\n", | |
"new_farme['Per Capita Income'] = series\n", | |
"#when assigning list or arrays to a column, the values lenght should match the length of the DataFrame\n", | |
"new_farme # again the missing values are displayed as NAN" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>State</th>\n", | |
" <th>Language</th>\n", | |
" <th>Population</th>\n", | |
" <th>Per Capita Income</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>a</th>\n", | |
" <td> Gujarat</td>\n", | |
" <td> Gujarati</td>\n", | |
" <td> 36</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>b</th>\n", | |
" <td> Tamil Nadu</td>\n", | |
" <td> Tamil</td>\n", | |
" <td> 44</td>\n", | |
" <td> 44</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>c</th>\n", | |
" <td> Andhra</td>\n", | |
" <td> Telugu</td>\n", | |
" <td> 67</td>\n", | |
" <td> 33</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>d</th>\n", | |
" <td> Karnataka</td>\n", | |
" <td> Kannada</td>\n", | |
" <td> 89</td>\n", | |
" <td> 22</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>e</th>\n", | |
" <td> Kerala</td>\n", | |
" <td> Malayalam</td>\n", | |
" <td> 34</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 104, | |
"text": [ | |
" State Language Population Per Capita Income\n", | |
"a Gujarat Gujarati 36 NaN\n", | |
"b Tamil Nadu Tamil 44 44\n", | |
"c Andhra Telugu 67 33\n", | |
"d Karnataka Kannada 89 22\n", | |
"e Kerala Malayalam 34 NaN" | |
] | |
} | |
], | |
"prompt_number": 104 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"new_farme['Development'] = new_farme.State == 'Gujarat'# assigning a new column\n", | |
"print new_farme\n", | |
"del new_farme['Development'] # will delete the column 'Development'\n", | |
"new_farme" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
" State Language Population Per Capita Income Development\n", | |
"a Gujarat Gujarati 36 NaN True\n", | |
"b Tamil Nadu Tamil 44 44 False\n", | |
"c Andhra Telugu 67 33 False\n", | |
"d Karnataka Kannada 89 22 False\n", | |
"e Kerala Malayalam 34 NaN False\n" | |
] | |
}, | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>State</th>\n", | |
" <th>Language</th>\n", | |
" <th>Population</th>\n", | |
" <th>Per Capita Income</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>a</th>\n", | |
" <td> Gujarat</td>\n", | |
" <td> Gujarati</td>\n", | |
" <td> 36</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>b</th>\n", | |
" <td> Tamil Nadu</td>\n", | |
" <td> Tamil</td>\n", | |
" <td> 44</td>\n", | |
" <td> 44</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>c</th>\n", | |
" <td> Andhra</td>\n", | |
" <td> Telugu</td>\n", | |
" <td> 67</td>\n", | |
" <td> 33</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>d</th>\n", | |
" <td> Karnataka</td>\n", | |
" <td> Kannada</td>\n", | |
" <td> 89</td>\n", | |
" <td> 22</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>e</th>\n", | |
" <td> Kerala</td>\n", | |
" <td> Malayalam</td>\n", | |
" <td> 34</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 119, | |
"text": [ | |
" State Language Population Per Capita Income\n", | |
"a Gujarat Gujarati 36 NaN\n", | |
"b Tamil Nadu Tamil 44 44\n", | |
"c Andhra Telugu 67 33\n", | |
"d Karnataka Kannada 89 22\n", | |
"e Kerala Malayalam 34 NaN" | |
] | |
} | |
], | |
"prompt_number": 119 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"new_data ={'Modi': {2010: 72, 2012: 78, 2014 : 98},'Rahul': {2010: 55, 2012: 34, 2014: 22}}\n", | |
"elections = DataFrame(new_data) \n", | |
"print elections# the outer dict keys are columns and inner dict keys are rows\n", | |
"elections.T # transpose of a data frame" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
" Modi Rahul\n", | |
"2010 72 55\n", | |
"2012 78 34\n", | |
"2014 98 22\n" | |
] | |
}, | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>2010</th>\n", | |
" <th>2012</th>\n", | |
" <th>2014</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>Modi</th>\n", | |
" <td> 72</td>\n", | |
" <td> 78</td>\n", | |
" <td> 98</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>Rahul</th>\n", | |
" <td> 55</td>\n", | |
" <td> 34</td>\n", | |
" <td> 22</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 16, | |
"text": [ | |
" 2010 2012 2014\n", | |
"Modi 72 78 98\n", | |
"Rahul 55 34 22" | |
] | |
} | |
], | |
"prompt_number": 16 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"DataFrame(new_data, index =[2012, 2014, 2016]) # you can assign index for the data frame" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Modi</th>\n", | |
" <th>Rahul</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2012</th>\n", | |
" <td> 78</td>\n", | |
" <td> 34</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2014</th>\n", | |
" <td> 98</td>\n", | |
" <td> 22</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2016</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 17, | |
"text": [ | |
" Modi Rahul\n", | |
"2012 78 34\n", | |
"2014 98 22\n", | |
"2016 NaN NaN" | |
] | |
} | |
], | |
"prompt_number": 17 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"ex= {'Gujarat':elections['Modi'][:-1], 'India': elections['Rahul'][:2]}\n", | |
"px =DataFrame(ex)\n", | |
"px" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Gujarat</th>\n", | |
" <th>India</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2010</th>\n", | |
" <td> 72</td>\n", | |
" <td> 55</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2012</th>\n", | |
" <td> 78</td>\n", | |
" <td> 34</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 18, | |
"text": [ | |
" Gujarat India\n", | |
"2010 72 55\n", | |
"2012 78 34" | |
] | |
} | |
], | |
"prompt_number": 18 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"from IPython.display import Image\n", | |
"i = Image(filename='Constructors.png')\n", | |
"i # list of things you can pass to a dataframe" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"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", | |
"prompt_number": 150, | |
"text": [ | |
"<IPython.core.display.Image at 0x5753470>" | |
] | |
} | |
], | |
"prompt_number": 150 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"px.index.name = 'year'\n", | |
"px.columns.name = 'politicians'\n", | |
"px" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th>politicians</th>\n", | |
" <th>Gujarat</th>\n", | |
" <th>India</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>year</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2010</th>\n", | |
" <td> 72</td>\n", | |
" <td> 55</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2012</th>\n", | |
" <td> 78</td>\n", | |
" <td> 34</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 155, | |
"text": [ | |
"politicians Gujarat India\n", | |
"year \n", | |
"2010 72 55\n", | |
"2012 78 34" | |
] | |
} | |
], | |
"prompt_number": 155 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"px.values" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 156, | |
"text": [ | |
"array([[72, 55],\n", | |
" [78, 34]], dtype=int64)" | |
] | |
} | |
], | |
"prompt_number": 156 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"jeeva = Series([5,4,3,2,1,-7,-29], index =['a','b','c','d','e','f','h'])\n", | |
"index = jeeva.index\n", | |
"print index #u denotes unicode\n", | |
"print index[1:]# returns all the index elements except a. \n", | |
"index[1] = 'f' # you cannot modify an index element. It will generate an error. In other words, they are immutable" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"ename": "TypeError", | |
"evalue": "'<class 'pandas.core.index.Index'>' does not support mutable operations.", | |
"output_type": "pyerr", | |
"traceback": [ | |
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)", | |
"\u001b[1;32m<ipython-input-3-e8b7ee2d0552>\u001b[0m in \u001b[0;36m<module>\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", | |
"\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", | |
"\u001b[1;31mTypeError\u001b[0m: '<class 'pandas.core.index.Index'>' does not support mutable operations." | |
] | |
}, | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"Index([u'a', u'b', u'c', u'd', u'e', u'f', u'h'], dtype='object')\n", | |
"Index([u'b', u'c', u'd', u'e', u'f', u'h'], dtype='object')\n" | |
] | |
} | |
], | |
"prompt_number": 3 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"print px\n", | |
"2013 in px.index # checks if 2003 is an index in data frame px" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
" Gujarat India\n", | |
"2010 72 55\n", | |
"2012 78 34\n" | |
] | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 22, | |
"text": [ | |
"False" | |
] | |
} | |
], | |
"prompt_number": 22 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Reindex" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"var = Series(['Python', 'Java', 'c', 'c++', 'Php'], index =[5,4,3,2,1])\n", | |
"print var\n", | |
"var1 = var.reindex([1,2,3,4,5])# reindex creates a new object \n", | |
"print var1 " | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"5 Python\n", | |
"4 Java\n", | |
"3 c\n", | |
"2 c++\n", | |
"1 Php\n", | |
"dtype: object\n", | |
"1 Php\n", | |
"2 c++\n", | |
"3 c\n", | |
"4 Java\n", | |
"5 Python\n", | |
"dtype: object\n" | |
] | |
} | |
], | |
"prompt_number": 27 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"var.reindex([1,2,3,4,5,6,7])# introduces new indexes with values Nan" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 28, | |
"text": [ | |
"1 Php\n", | |
"2 c++\n", | |
"3 c\n", | |
"4 Java\n", | |
"5 Python\n", | |
"6 NaN\n", | |
"7 NaN\n", | |
"dtype: object" | |
] | |
} | |
], | |
"prompt_number": 28 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"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." | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 31, | |
"text": [ | |
"1 Php\n", | |
"2 c++\n", | |
"3 c\n", | |
"4 Java\n", | |
"5 Python\n", | |
"6 1\n", | |
"7 1\n", | |
"dtype: object" | |
] | |
} | |
], | |
"prompt_number": 31 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"gh =Series(['Dhoni', 'Sachin', 'Kohli'], index =[0,2,4])\n", | |
"print gh\n", | |
"gh.reindex(range(6), method ='ffill') #ffill is forward fill. It forward fills the values" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"0 Dhoni\n", | |
"2 Sachin\n", | |
"4 Kohli\n", | |
"dtype: object\n" | |
] | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 35, | |
"text": [ | |
"0 Dhoni\n", | |
"1 Dhoni\n", | |
"2 Sachin\n", | |
"3 Sachin\n", | |
"4 Kohli\n", | |
"5 Kohli\n", | |
"dtype: object" | |
] | |
} | |
], | |
"prompt_number": 35 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"gh.reindex(range(6), method ='bfill')# bfill, backward fills the values" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 36, | |
"text": [ | |
"0 Dhoni\n", | |
"1 Sachin\n", | |
"2 Sachin\n", | |
"3 Kohli\n", | |
"4 Kohli\n", | |
"5 NaN\n", | |
"dtype: object" | |
] | |
} | |
], | |
"prompt_number": 36 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"import numpy as np\n", | |
"fp = DataFrame(np.arange(9).reshape((3,3)),index =['a','b','c'], columns =['Gujarat','Tamil Nadu', 'Kerala'])\n", | |
"fp" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Gujarat</th>\n", | |
" <th>Tamil Nadu</th>\n", | |
" <th>Kerala</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>a</th>\n", | |
" <td> 0</td>\n", | |
" <td> 1</td>\n", | |
" <td> 2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>b</th>\n", | |
" <td> 3</td>\n", | |
" <td> 4</td>\n", | |
" <td> 5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>c</th>\n", | |
" <td> 6</td>\n", | |
" <td> 7</td>\n", | |
" <td> 8</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 45, | |
"text": [ | |
" Gujarat Tamil Nadu Kerala\n", | |
"a 0 1 2\n", | |
"b 3 4 5\n", | |
"c 6 7 8" | |
] | |
} | |
], | |
"prompt_number": 45 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"fp1 =fp.reindex(['a', 'b', 'c', 'd'], columns = states) # reindexing columns and indices\n", | |
"fp1" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Gujarat</th>\n", | |
" <th>Assam</th>\n", | |
" <th>Kerala</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>a</th>\n", | |
" <td> 0</td>\n", | |
" <td>NaN</td>\n", | |
" <td> 2</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>b</th>\n", | |
" <td> 3</td>\n", | |
" <td>NaN</td>\n", | |
" <td> 5</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>c</th>\n", | |
" <td> 6</td>\n", | |
" <td>NaN</td>\n", | |
" <td> 8</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>d</th>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" <td>NaN</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 55, | |
"text": [ | |
" Gujarat Assam Kerala\n", | |
"a 0 NaN 2\n", | |
"b 3 NaN 5\n", | |
"c 6 NaN 8\n", | |
"d NaN NaN NaN" | |
] | |
} | |
], | |
"prompt_number": 55 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Other Reindexing arguments <br>\n", | |
"<b>limit</b> When forward- or backfilling, maximum size gap to fill<br>\n", | |
"<b>level</b> Match simple Index on level of MultiIndex, otherwise select subset of <br>\n", | |
"<b>copy</b> Do not copy underlying data if new index is equivalent to old index. True by default (i.e. always copy data)." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Dropping entries from an axis" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"er = Series(np.arange(5), index =['a','b','c','d','e'])\n", | |
"print er\n", | |
"er.drop(['a','b']) #drop method will return a new object with values deleted from an axis" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"a 0\n", | |
"b 1\n", | |
"c 2\n", | |
"d 3\n", | |
"e 4\n", | |
"dtype: int32\n" | |
] | |
}, | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 62, | |
"text": [ | |
"c 2\n", | |
"d 3\n", | |
"e 4\n", | |
"dtype: int32" | |
] | |
} | |
], | |
"prompt_number": 62 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"states ={'State' :['Gujarat', 'Tamil Nadu', ' Andhra', 'Karnataka', 'Kerala'],\n", | |
" 'Population': [36, 44, 67,89,34],\n", | |
" 'Language' :['Gujarati', 'Tamil', 'Telugu', 'Kannada', 'Malayalam']}\n", | |
"india = DataFrame(states, columns =['State', 'Population', 'Language'])\n", | |
"print india\n", | |
"india.drop([0,1])# will drop index 0 and 1" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
" State Population Language\n", | |
"0 Gujarat 36 Gujarati\n", | |
"1 Tamil Nadu 44 Tamil\n", | |
"2 Andhra 67 Telugu\n", | |
"3 Karnataka 89 Kannada\n", | |
"4 Kerala 34 Malayalam\n" | |
] | |
}, | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>State</th>\n", | |
" <th>Population</th>\n", | |
" <th>Language</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td> Andhra</td>\n", | |
" <td> 67</td>\n", | |
" <td> Telugu</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td> Karnataka</td>\n", | |
" <td> 89</td>\n", | |
" <td> Kannada</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td> Kerala</td>\n", | |
" <td> 34</td>\n", | |
" <td> Malayalam</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 77, | |
"text": [ | |
" State Population Language\n", | |
"2 Andhra 67 Telugu\n", | |
"3 Karnataka 89 Kannada\n", | |
"4 Kerala 34 Malayalam" | |
] | |
} | |
], | |
"prompt_number": 77 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"india.drop(['State', 'Population'], axis =1 )# the function dropped population and state columns. Apply the same concept with axis =0" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Language</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td> Gujarati</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td> Tamil</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td> Telugu</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td> Kannada</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td> Malayalam</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 82, | |
"text": [ | |
" Language\n", | |
"0 Gujarati\n", | |
"1 Tamil\n", | |
"2 Telugu\n", | |
"3 Kannada\n", | |
"4 Malayalam" | |
] | |
} | |
], | |
"prompt_number": 82 | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"#Selection, Indexing and Filtering" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"var = Series(['Python', 'Java', 'c', 'c++', 'Php'], index =[5,4,3,2,1])\n", | |
"var" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 102, | |
"text": [ | |
"5 Python\n", | |
"4 Java\n", | |
"3 c\n", | |
"2 c++\n", | |
"1 Php\n", | |
"dtype: object" | |
] | |
} | |
], | |
"prompt_number": 102 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"print var[5]\n", | |
"print var[2:4]" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"stream": "stdout", | |
"text": [ | |
"Python\n", | |
"3 c\n", | |
"2 c++\n", | |
"dtype: object\n" | |
] | |
} | |
], | |
"prompt_number": 103 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"var[[3,2,1]]" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 104, | |
"text": [ | |
"3 c\n", | |
"2 c++\n", | |
"1 Php\n", | |
"dtype: object" | |
] | |
} | |
], | |
"prompt_number": 104 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"var[var == 'Php']" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 109, | |
"text": [ | |
"1 Php\n", | |
"dtype: object" | |
] | |
} | |
], | |
"prompt_number": 109 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"states ={'State' :['Gujarat', 'Tamil Nadu', ' Andhra', 'Karnataka', 'Kerala'],\n", | |
" 'Population': [36, 44, 67,89,34],\n", | |
" 'Language' :['Gujarati', 'Tamil', 'Telugu', 'Kannada', 'Malayalam']}\n", | |
"india = DataFrame(states, columns =['State', 'Population', 'Language'])\n", | |
"india" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>State</th>\n", | |
" <th>Population</th>\n", | |
" <th>Language</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td> Gujarat</td>\n", | |
" <td> 36</td>\n", | |
" <td> Gujarati</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td> Tamil Nadu</td>\n", | |
" <td> 44</td>\n", | |
" <td> Tamil</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td> Andhra</td>\n", | |
" <td> 67</td>\n", | |
" <td> Telugu</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td> Karnataka</td>\n", | |
" <td> 89</td>\n", | |
" <td> Kannada</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td> Kerala</td>\n", | |
" <td> 34</td>\n", | |
" <td> Malayalam</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 111, | |
"text": [ | |
" State Population Language\n", | |
"0 Gujarat 36 Gujarati\n", | |
"1 Tamil Nadu 44 Tamil\n", | |
"2 Andhra 67 Telugu\n", | |
"3 Karnataka 89 Kannada\n", | |
"4 Kerala 34 Malayalam" | |
] | |
} | |
], | |
"prompt_number": 111 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"india[['Population', 'Language']] # retrieve data from data frame" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>Population</th>\n", | |
" <th>Language</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td> 36</td>\n", | |
" <td> Gujarati</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td> 44</td>\n", | |
" <td> Tamil</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td> 67</td>\n", | |
" <td> Telugu</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td> 89</td>\n", | |
" <td> Kannada</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td> 34</td>\n", | |
" <td> Malayalam</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 114, | |
"text": [ | |
" Population Language\n", | |
"0 36 Gujarati\n", | |
"1 44 Tamil\n", | |
"2 67 Telugu\n", | |
"3 89 Kannada\n", | |
"4 34 Malayalam" | |
] | |
} | |
], | |
"prompt_number": 114 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"india[india['Population'] > 50] # returns data for population greater than 50" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>State</th>\n", | |
" <th>Population</th>\n", | |
" <th>Language</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td> Andhra</td>\n", | |
" <td> 67</td>\n", | |
" <td> Telugu</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td> Karnataka</td>\n", | |
" <td> 89</td>\n", | |
" <td> Kannada</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 115, | |
"text": [ | |
" State Population Language\n", | |
"2 Andhra 67 Telugu\n", | |
"3 Karnataka 89 Kannada" | |
] | |
} | |
], | |
"prompt_number": 115 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"india[:3] # first three rows" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>State</th>\n", | |
" <th>Population</th>\n", | |
" <th>Language</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td> Gujarat</td>\n", | |
" <td> 36</td>\n", | |
" <td> Gujarati</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td> Tamil Nadu</td>\n", | |
" <td> 44</td>\n", | |
" <td> Tamil</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td> Andhra</td>\n", | |
" <td> 67</td>\n", | |
" <td> Telugu</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 117, | |
"text": [ | |
" State Population Language\n", | |
"0 Gujarat 36 Gujarati\n", | |
"1 Tamil Nadu 44 Tamil\n", | |
"2 Andhra 67 Telugu" | |
] | |
} | |
], | |
"prompt_number": 117 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"# for selecting specific rows and columns, you can use ix function\n", | |
"import pandas as pd\n", | |
"states ={'State' :['Gujarat', 'Tamil Nadu', ' Andhra', 'Karnataka', 'Kerala'],\n", | |
" 'Population': [36, 44, 67,89,34],\n", | |
" 'Language' :['Gujarati', 'Tamil', 'Telugu', 'Kannada', 'Malayalam']}\n", | |
"india = DataFrame(states, columns =['State', 'Population', 'Language'], index =['a', 'b', 'c', 'd', 'e'])\n", | |
"india" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>State</th>\n", | |
" <th>Population</th>\n", | |
" <th>Language</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>a</th>\n", | |
" <td> Gujarat</td>\n", | |
" <td> 36</td>\n", | |
" <td> Gujarati</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>b</th>\n", | |
" <td> Tamil Nadu</td>\n", | |
" <td> 44</td>\n", | |
" <td> Tamil</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>c</th>\n", | |
" <td> Andhra</td>\n", | |
" <td> 67</td>\n", | |
" <td> Telugu</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>d</th>\n", | |
" <td> Karnataka</td>\n", | |
" <td> 89</td>\n", | |
" <td> Kannada</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>e</th>\n", | |
" <td> Kerala</td>\n", | |
" <td> 34</td>\n", | |
" <td> Malayalam</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 4, | |
"text": [ | |
" State Population Language\n", | |
"a Gujarat 36 Gujarati\n", | |
"b Tamil Nadu 44 Tamil\n", | |
"c Andhra 67 Telugu\n", | |
"d Karnataka 89 Kannada\n", | |
"e Kerala 34 Malayalam" | |
] | |
} | |
], | |
"prompt_number": 4 | |
}, | |
{ | |
"cell_type": "code", | |
"collapsed": false, | |
"input": [ | |
"india.ix[['a','b'], ['State','Language']] # this is how you select subset of rows" | |
], | |
"language": "python", | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"html": [ | |
"<div style=\"max-height:1000px;max-width:1500px;overflow:auto;\">\n", | |
"<table border=\"1\" class=\"dataframe\">\n", | |
" <thead>\n", | |
" <tr style=\"text-align: right;\">\n", | |
" <th></th>\n", | |
" <th>State</th>\n", | |
" <th>Language</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>a</th>\n", | |
" <td> Gujarat</td>\n", | |
" <td> Gujarati</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>b</th>\n", | |
" <td> Tamil Nadu</td>\n", | |
" <td> Tamil</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"metadata": {}, | |
"output_type": "pyout", | |
"prompt_number": 128, | |
"text": [ | |
" State Language\n", | |
"a Gujarat Gujarati\n", | |
"b Tamil Nadu Tamil" | |
] | |
} | |
], | |
"prompt_number": 128 | |
} | |
], | |
"metadata": {} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment