Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save saeedaghabozorgi/59203f6ddea7b63c028c7765b90b647c to your computer and use it in GitHub Desktop.
Save saeedaghabozorgi/59203f6ddea7b63c028c7765b90b647c to your computer and use it in GitHub Desktop.
Created on Cognitive Class Labs
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
" <a href=\"http://cocl.us/NotebooksPython101\"><img src = \"https://ibm.box.com/shared/static/yfe6h4az47ktg2mm9h05wby2n7e8kei3.png\" width = 750, align = \"center\"></a>\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# <a href=\"https://www.bigdatauniversity.com\"><img src = \"https://ibm.box.com/shared/static/ugcqz6ohbvff804xp84y4kqnvvk3bq1g.png\" width = 300, align = \"center\"></a>\n",
"\n",
"<h1 align=center><font size = 5>Introduction to Pandas Python</font></h1>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Table of Contents\n",
"\n",
"\n",
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n",
"<li><a href=\"#ref0\">About the Dataset</a></li>\n",
"\n",
"<li><a href=\"#ref2\">Viewing Data and Accessing Data </a></p></li>\n",
"<br>\n",
"<p></p>\n",
"Estimated Time Needed: <strong>15 min</strong>\n",
"</div>\n",
"\n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<a id=\"ref0\"></a>\n",
"<h2 align=center>About the Dataset</h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"\n",
"The table has one row for each album and several columns\n",
"\n",
"- **artist** - Name of the artist\n",
"- **album** - Name of the album\n",
"- **released_year** - Year the album was released\n",
"- **length_min_sec** - Length of the album (hours,minutes,seconds)\n",
"- **genre** - Genre of the album\n",
"- **music_recording_sales_millions** - Music recording sales (millions in USD) on [SONG://DATABASE](http://www.song-database.com/)\n",
"- **claimed_sales_millions** - Album's claimed sales (millions in USD) on [SONG://DATABASE](http://www.song-database.com/)\n",
"- **date_released** - Date on which the album was released\n",
"- **soundtrack** - Indicates if the album is the movie soundtrack (Y) or (N)\n",
"- **rating_of_friends** - Indicates the rating from your friends from 1 to 10\n",
"<br>\n",
"\n",
"You can see the dataset here:\n",
"\n",
"<font size=\"1\">\n",
"<table font-size:xx-small style=\"width:25%\">\n",
" <tr>\n",
" <th>Artist</th>\n",
" <th>Album</th> \n",
" <th>Released</th>\n",
" <th>Length</th>\n",
" <th>Genre</th> \n",
" <th>Music recording sales (millions)</th>\n",
" <th>Claimed sales (millions)</th>\n",
" <th>Released</th>\n",
" <th>Soundtrack</th>\n",
" <th>Rating (friends)</th>\n",
" </tr>\n",
" <tr>\n",
" <td>Michael Jackson</td>\n",
" <td>Thriller</td> \n",
" <td>1982</td>\n",
" <td>00:42:19</td>\n",
" <td>Pop, rock, R&B</td>\n",
" <td>46</td>\n",
" <td>65</td>\n",
" <td>30-Nov-82</td>\n",
" <td></td>\n",
" <td>10.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>AC/DC</td>\n",
" <td>Back in Black</td> \n",
" <td>1980</td>\n",
" <td>00:42:11</td>\n",
" <td>Hard rock</td>\n",
" <td>26.1</td>\n",
" <td>50</td>\n",
" <td>25-Jul-80</td>\n",
" <td></td>\n",
" <td>8.5</td>\n",
" </tr>\n",
" <tr>\n",
" <td>Pink Floyd</td>\n",
" <td>The Dark Side of the Moon</td> \n",
" <td>1973</td>\n",
" <td>00:42:49</td>\n",
" <td>Progressive rock</td>\n",
" <td>24.2</td>\n",
" <td>45</td>\n",
" <td>01-Mar-73</td>\n",
" <td></td>\n",
" <td>9.5</td>\n",
" </tr>\n",
" <tr>\n",
" <td>Whitney Houston</td>\n",
" <td>The Bodyguard</td> \n",
" <td>1992</td>\n",
" <td>00:57:44</td>\n",
" <td>Soundtrack/R&B, soul, pop</td>\n",
" <td>26.1</td>\n",
" <td>50</td>\n",
" <td>25-Jul-80</td>\n",
" <td>Y</td>\n",
" <td>7.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>Meat Loaf</td>\n",
" <td>Bat Out of Hell</td> \n",
" <td>1977</td>\n",
" <td>00:46:33</td>\n",
" <td>Hard rock, progressive rock</td>\n",
" <td>20.6</td>\n",
" <td>43</td>\n",
" <td>21-Oct-77</td>\n",
" <td></td>\n",
" <td>7.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>Eagles</td>\n",
" <td>Their Greatest Hits (1971-1975)</td> \n",
" <td>1976</td>\n",
" <td>00:43:08</td>\n",
" <td>Rock, soft rock, folk rock</td>\n",
" <td>32.2</td>\n",
" <td>42</td>\n",
" <td>17-Feb-76</td>\n",
" <td></td>\n",
" <td>9.5</td>\n",
" </tr>\n",
" <tr>\n",
" <td>Bee Gees</td>\n",
" <td>Saturday Night Fever</td> \n",
" <td>1977</td>\n",
" <td>1:15:54</td>\n",
" <td>Disco</td>\n",
" <td>20.6</td>\n",
" <td>40</td>\n",
" <td>15-Nov-77</td>\n",
" <td>Y</td>\n",
" <td>9.0</td>\n",
" </tr>\n",
" <tr>\n",
" <td>Fleetwood Mac</td>\n",
" <td>Rumours</td> \n",
" <td>1977</td>\n",
" <td>00:40:01</td>\n",
" <td>Soft rock</td>\n",
" <td>27.9</td>\n",
" <td>40</td>\n",
" <td>04-Feb-77</td>\n",
" <td></td>\n",
" <td>9.5</td>\n",
" </tr>\n",
"</table></font>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"After the import command, we now have access to a large number of pre-built classes and functions. This assumes the library is installed; in our lab environment all the necessary libraries are installed. One way pandas allows you to work with data is a dataframe. Let's go through the process to go from a comma separated values (**.csv** ) file to a dataframe. This variable **csv_path** stores the path of the **.csv** ,that is used as an argument to the **read_csv** function. The result is stored in the object ** df**, this is a common short form used for a variable referring to a Pandas dataframe. "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"csv_path='https://ibm.box.com/shared/static/keo2qz0bvh4iu6gf5qjq4vdrkt67bvvb.csv'\n",
"df = pd.read_csv(csv_path)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can use the method **head()** to examine the first five rows of a dataframe: \n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"df.head()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#dependency needed to install file \n",
"!pip install xlrd"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" We use the path of the excel file and the function **read_excel**. The result is a data frame as before:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"xlsx_path='https://ibm.box.com/shared/static/mzd4exo31la6m7neva2w45dstxfg5s86.xlsx'\n",
"\n",
"df = pd.read_excel(xlsx_path)\n",
"df.head()\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can access the column \"Length\" and assign it a new dataframe 'x':\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"x=df[['Length']]\n",
"x"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" The process is shown in the figure: "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <img src = \"https://ibm.box.com/shared/static/bz800py5ui4w0kpb0k09lq3k5oegop5v.png\" width = 750, align = \"center\"></a>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <a id=\"ref2\"></a>\n",
"<h2 align=center> Viewing Data and Accessing Data </h2>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can also assign the value to a series, you can think of a Pandas series as a 1-D dataframe. Just use one bracket: "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"x=df['Length']\n",
"x"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can also assign different columns, for example, we can assign the column 'Artist':"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"x=df[['Artist']]\n",
"x"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Assign the variable 'q' to the dataframe that is made up of the column 'Rating':\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div align=\"right\">\n",
"<a href=\"#q1\" class=\"btn btn-default\" data-toggle=\"collapse\">Click here for the solution</a>\n",
"\n",
"</div>\n",
"<div id=\"q1\" class=\"collapse\">\n",
"```\n",
"q=df[['Rating']]\n",
"q\n",
"```\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can do the same thing for multiple columns; we just put the dataframe name, in this case, **df**, and the name of the multiple column headers enclosed in double brackets. The result is a new dataframe comprised of the specified columns:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"y=df[['Artist','Length','Genre']]\n",
"y"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The process is shown in the figure:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <img src = \"https://ibm.box.com/shared/static/dh9duk3ucuhmmmbixa6ugac6g384m5sq.png\" width = 1100, align = \"center\"></a>"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"df[['Album','Released','Length']]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Assign the variable 'q' to the dataframe that is made up of the column 'Released' and 'Artist':"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div align=\"right\">\n",
"<a href=\"#q2\" class=\"btn btn-default\" data-toggle=\"collapse\">Click here for the solution</a>\n",
"\n",
"</div>\n",
"<div id=\"q2\" class=\"collapse\">\n",
"```\n",
"q=df[['Released','Artist']]\n",
"q\n",
"```\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"One way to access unique elements is the 'ix' method, where you can access the 1st row and first column as follows :"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#**ix** will be deprecated, use **iloc** for integer indexes \n",
"#df.ix[0,0]\n",
"df.iloc[0,0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can access the 2nd row and first column as follows:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#**ix** will be deprecated, use **iloc** for integer indexes\n",
"#df.ix[1,0]\n",
"df.iloc[1,0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" You can access the 1st row 3rd column as follows: "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#**ix** will be deprecated, use **iloc** for integer indexes\n",
"#df.ix[0,2]\n",
"df.iloc[0,2]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Access the 2nd row 3rd column:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <div align=\"right\">\n",
"<a href=\"#q3\" class=\"btn btn-default\" data-toggle=\"collapse\">Click here for the solution</a>\n",
"\n",
"</div>\n",
"<div id=\"q3\" class=\"collapse\">\n",
"```\n",
"#**ix** will be deprecated use **iloc** for integer indexes\n",
"#df.ix[1,2]\n",
"df.iloc[0,2]\n",
"```\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can access the column using the name as well, the following are the same as above: "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#**ix** will be deprecated, use **loc** for label-location based indexer\n",
"#df.ix[0,'Artist']\n",
"df.loc[0,'Artist']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#**ix** will be deprecated, use **loc** for label-location based indexer\n",
"#df.ix[1,'Artist']\n",
"df.loc[1,'Artist']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#**ix** will be deprecated, use **loc** for label-location based indexer\n",
"#df.ix[0,'Released']\n",
"df.loc[0,'Released']"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#**ix** will be deprecated, use **loc** for label-location based indexer\n",
"#df.ix[1,'Released']\n",
"df.loc[1,'Released']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You can perform slicing using both the index and the name of the column:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#**ix** will be deprecated, use **loc** for label-location based indexer\n",
"#df.ix[0:2, 0:3]\n",
"df.iloc[0:2, 0:3]\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"#**ix** will be deprecated, use **loc** for label-location based indexer\n",
"#df.ix[0:2, 'Artist':'Released']\n",
"df.loc[0:2, 'Artist':'Released']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" <a href=\"http://cocl.us/NotebooksPython101bottom\"><img src = \"https://ibm.box.com/shared/static/irypdxea2q4th88zu1o1tsd06dya10go.png\" width = 750, align = \"center\"></a>\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### About the Authors: \n",
"\n",
" [Joseph Santarcangelo]( https://www.linkedin.com/in/joseph-s-50398b136/) has a PhD in Electrical Engineering, his research focused on using machine learning, signal processing, and computer vision to determine how videos impact human cognition. Joseph has been working for IBM since he completed his PhD.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Copyright &copy; 2017 [cognitiveclass.ai](https:cognitiveclass.ai). This notebook and its source code are released under the terms of the [MIT License](cognitiveclass.ai)."
]
}
],
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment