Skip to content

Instantly share code, notes, and snippets.

@rskrisel
Created May 18, 2023 14:14
Show Gist options
  • Save rskrisel/407561c530657f275dc728a753c784b0 to your computer and use it in GitHub Desktop.
Save rskrisel/407561c530657f275dc728a753c784b0 to your computer and use it in GitHub Desktop.
Desktop/projects/pandas_workshop.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {},
"id": "45596f3f",
"cell_type": "markdown",
"source": "# Data Manipulation in Pandas and Python\n\n\n## Workshop Overview\n\nIn this workshop, we are going to learn some basic commands in **[Pandas](https://pandas.pydata.org/pandas-docs/stable/getting_started/overview.html)**, an expansive Python library for working with tabular data like CSV files. You can think of Pandas as a more powerful version of Excel that operates within the Python environment, where you can wrangle, clean, analyze, and visualize data. Knowing how to use Pandas is important if you plan on working with datasets that include qualitative and/or quantitative data points. \n\nThroughout the lessons in this workshop, we will interact with the Pandas library using Jupyter Notebooks to analyze a dataset on refugee arrivals to the United States between 2005 and 2015.\n\n---\n\n## The Dataset and Ethical Considerations\n\nIn this workshop, we are using data on refugee arrivals to the United States between 2005 and 2015. The “refugee-arrivals-by-destination” CSV file, which you can [download here](https://drive.google.com/drive/folders/17cAPHux4ileepqNce_5FdYoQaopK3wO5?usp=sharing), contains information about the number of refugees who arrived in each U.S. city and state, the year that they arrived, and the country from which they arrived. The dataset was specifically adapted for the purposes of this workshop.\n\nThe dataset was originally compiled from the Department of State’s Refugee Processing Center by Jeremy Singer-Vine for his BuzzFeed article [“Where U.S. Refugees Come From — And Go — In Charts.”](https://www.buzzfeednews.com/article/jsvine/where-us-refugees-come-from-and-go-in-charts#.vooNwy74jO)\n\nAs with any dataset, responsible data analysis requires more than just technical tools like Pandas. We also need to interrogate the data. Who collected this data? How and why is this data being collected? What assumptions are baked into this data? What consequences does this data have in the world? What does this data tell us about our world? When exploring this dataset, we can consider the meaning of the status of refugee, who has a right to claim that status, and which refugees are considered eligible to legally resettle in the U.S.. We could also think about who may not be represented in this data, including asylum seekers who migrate to the U.S. and become undocumented immigrants while waiting for their asylum claims to be processed. \n\nIf you are interested in thinking further about data types and our choices in relation to data, have a look at this **[Data Literacies workshop](https://curriculum.dhinstitutes.org/shortcuts/workshop/data-literacies)**.\n\n---\n\n## Preparing your workspace and folders\n\nTo begin, let’s create a “pandas_workshop” folder on our Desktop. Keeping all your files for a particular project in a designated file directory will keep your project organized and will make it easier to read in your files. You can create a folder manually by navigating to your Desktop and selecting create new folder. Or, you can use the command line: \n\n```bash\ncd Desktop\nmkdir pandas_workshop\n\n```\n\nNext, download the **[“refugee-arrivals-by-destination” CSV file](https://drive.google.com/drive/folders/17cAPHux4ileepqNce_5FdYoQaopK3wO5?usp=sharing)** and save it in the “pandas_workshop” folder on our Desktop. You can use the command line to do this:\n```bash\ncd ~/Downloads\nmv refugee-arrivals-by-destination.csv ~/Desktop/pandas_workshop\ncd ~/Desktop/pandas_workshop\nls\n```\n---\n### Launch your Jupyter Notebook\nTo get started with Jupyter notebook, you must first launch Jupyter Notebook from the “Anaconda Navigator” application on your computer. There are two ways to do this:\n\n- Find “Anaconda Navigator” in the applications folder on your computer, and double-click on the app to open it.\n\n<!-- ![1.png](attachment:1.png) -->\n\n\n",
"attachments": {}
},
{
"metadata": {},
"cell_type": "markdown",
"source": "- Once Anaconda Navigator opens, you can launch Jupyter Notebook by clicking the “Launch” button.\n\n<!-- ![2.png](attachment:2.png) -->",
"attachments": {}
},
{
"metadata": {},
"cell_type": "markdown",
"source": "OR, launch Jupyter Notebook from a Terminal or Powershell by running:\n\n\n```bash\njupyter notebook\n```\n\n---\n### Creating a new Jupyter notebook file\n\nOnce you’ve launched Jupyter Notebook, you can create the Jupyter notebook file to run the workshop. From the Jupyter Home Tab in your Browser, find the “pandas_workshop” folder saved on your Desktop, and start a New Python Notebook using the New button in the upper right corner. Running and saving your Jupyter Notebook from the same directory as your file will keep your project organized and will make it easier to read in your files. \n\n<!-- ![3.png](attachment:3.png) -->",
"attachments": {}
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<!-- ![4.png](attachment:4.png) -->",
"attachments": {}
},
{
"metadata": {},
"cell_type": "markdown",
"source": "<!-- ![5.png](attachment:5.png) -->",
"attachments": {}
},
{
"metadata": {},
"cell_type": "markdown",
"source": "---\n\n### Naming your Jupyter notebook file\n\nEven though Jupyter Notebook doesn’t force you to do so, it is very important to name your file, or you will end up later with a bunch of untitled files and you will have no idea what they are about. In the top left, click on the word Untitled and give your file a name such as “intro_pandas”.\n\n<!-- ![6.jpeg](attachment:6.jpeg) -->\n\n---\n## Getting started with Pandas\n\n* Pandas is a Python software library\n* The name is derived from the term \"panel data\", an econometrics term for data sets that include observations over multiple time periods for the same individuals\n* You can think of it as a FREE equivalent to Stata or SPSS for data manipulation and analysis. It is also more powerful than Excel\n* Knowing how to use Pandas is important if you plan on working with data organized in spreadsheets (either quantitative or qualitative)\n\n\n### Import Pandas\n\nIn the first blank cell, type the following command to import the Pandas library into our Jupyter Notebook. To run the command, you can click the “Run” button in the top toolbar, or you can click shift + return. \n\n",
"attachments": {}
},
{
"metadata": {
"trusted": true
},
"id": "da65b00b",
"cell_type": "code",
"source": "import pandas as pd",
"execution_count": 318,
"outputs": []
},
{
"metadata": {},
"id": "3e2f0c17",
"cell_type": "markdown",
"source": "This import statement not only imports the Pandas library but also gives it the alias “pd.” Using this alias will save us from having to type out the entire word “Pandas” each time we need to use it. Libraries are sets of instructions that Python can use to perform specialized functions. \n\n\nIf you don’t see an error when you run the notebook—that is, if there is no output—you can move on to the next step. It is not rare in programming that when you do things right, the result will be nothing happening. This is what we like to call a silent success.\n\n---\n\n### Read in a CSV file as a DataFrame\n\nNext, we will read in our dataset saved as a CSV file. We will specifically work with the refugee-arrivals-by-destination.csv dataset. You want to make sure you save the dataset in the same location as your Jupyter Notebook, in this case the pandas_workshop folder saved on your Desktop. "
},
{
"metadata": {
"trusted": true
},
"id": "e2d9a3fb",
"cell_type": "code",
"source": "refugee_df = pd.read_csv('refugee-arrivals-by-destination.csv', delimiter=\",\", encoding='utf-8')",
"execution_count": 319,
"outputs": []
},
{
"metadata": {},
"id": "7daa1387",
"cell_type": "markdown",
"source": "- With this command, we have created a **Pandas DataFrame** object, which is a 2-dimensional labeled data structure with columns of different types. You can think of it like a spreadsheet or SQL table, or a dictionary of Series objects. \n- It is common practice to abbreviate DataFrame with “df”, as in refugee_df. \n- When reading in the CSV file, we also specified the encoding and delimiter. The delimiter specifies the character that separates or “delimits” the columns in our dataset. For CSV files, the delimiter is usually a comma but it can also be a tab. \n- UTF is “Unicode Transformation Format”, and ‘8’ means 8-bit values are used in the encoding. It is one of the most efficient and convenient encoding formats. In Python, strings are by default in utf-8 format which means each alphabet corresponds to a unique code point. Setting the encoding format ensures our strings are uniform."
},
{
"metadata": {},
"id": "9daafb08",
"cell_type": "markdown",
"source": "---\n## Data exploration\n\n### Display the Dataframe\n\nTo display the DataFrame, we can run a cell with the variable name of the DataFrame:"
},
{
"metadata": {
"trusted": true
},
"id": "d419e20b",
"cell_type": "code",
"source": "refugee_df",
"execution_count": 320,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 320,
"data": {
"text/plain": " year origin dest_state dest_city arrivals\n0 2005 Afghanistan Alabama Mobile 0\n1 2006 Afghanistan Alabama Mobile 0\n2 2007 Afghanistan Alabama Mobile 0\n3 2008 Afghanistan Alabama Mobile 0\n4 2009 Afghanistan Alabama Mobile 5\n... ... ... ... ... ...\n121240 2011 Vietnam Wisconsin Milwaukee 0\n121241 2012 Vietnam Wisconsin Milwaukee 4\n121242 2013 Vietnam Wisconsin Milwaukee 2\n121243 2014 Vietnam Wisconsin Milwaukee 0\n121244 2015 Vietnam Wisconsin Milwaukee 0\n\n[121245 rows x 5 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>year</th>\n <th>origin</th>\n <th>dest_state</th>\n <th>dest_city</th>\n <th>arrivals</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>2005</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>2006</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>2007</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2008</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>2009</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>5</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>121240</th>\n <td>2011</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n </tr>\n <tr>\n <th>121241</th>\n <td>2012</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>4</td>\n </tr>\n <tr>\n <th>121242</th>\n <td>2013</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>2</td>\n </tr>\n <tr>\n <th>121243</th>\n <td>2014</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n </tr>\n <tr>\n <th>121244</th>\n <td>2015</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n<p>121245 rows × 5 columns</p>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"id": "38340473",
"cell_type": "markdown",
"source": "Let’s take a look at a few elements in this DataFame: \n\n\n\n* Index\n * The bolded ascending numbers in the very left-hand column of the DataFrame is called the Pandas Index. You can select rows based on the Index.\n * By default, the Index is a sequence of numbers starting with zero. However, you can change the Index to something else, such as one of the columns in your dataset.\n * The default index is a Unique ID - that being said, the index does not have to be a Unique ID. You can set your index to be any column in your Dataframe\n* Truncation\n * The DataFrame is truncated, signaled by the ellipses in the middle … of every column.\n * The DataFrame is truncated because by default, Pandas will display 60 rows and 20 columns. You can change these default settings see [documentation](https://pandas.pydata.org/pandas-docs/stable/user_guide/options.html)\n* Rows x Columns\n * Pandas reports how many rows and columns are in this dataset at the bottom of the output. Our DataFrame has 121,245 rows × 5 columns.\n* NAN\n * NaN is the Pandas value for any missing data. "
},
{
"metadata": {},
"id": "ea7f2e78",
"cell_type": "markdown",
"source": "---\n### Display a selection of the Dataframe\nWe can also display the first 2 rows of the DataFrame with the `.head()` method"
},
{
"metadata": {
"trusted": true
},
"id": "ffc1c1b0",
"cell_type": "code",
"source": "refugee_df.head(2)",
"execution_count": 321,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 321,
"data": {
"text/plain": " year origin dest_state dest_city arrivals\n0 2005 Afghanistan Alabama Mobile 0\n1 2006 Afghanistan Alabama Mobile 0",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>year</th>\n <th>origin</th>\n <th>dest_state</th>\n <th>dest_city</th>\n <th>arrivals</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>2005</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>2006</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"id": "b98dd4f6",
"cell_type": "markdown",
"source": "</br>\nWe can accomplish the same task using a slice instead:"
},
{
"metadata": {
"trusted": true
},
"id": "45d391e1",
"cell_type": "code",
"source": "refugee_df[:2]",
"execution_count": 322,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 322,
"data": {
"text/plain": " year origin dest_state dest_city arrivals\n0 2005 Afghanistan Alabama Mobile 0\n1 2006 Afghanistan Alabama Mobile 0",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>year</th>\n <th>origin</th>\n <th>dest_state</th>\n <th>dest_city</th>\n <th>arrivals</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>2005</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>2006</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"id": "b2ee6910",
"cell_type": "markdown",
"source": "</br>\nWe can also display the last 10 rows of the DataFrame with the `.tail()` method"
},
{
"metadata": {
"trusted": true
},
"id": "0df4234f",
"cell_type": "code",
"source": "refugee_df.tail(10)",
"execution_count": 323,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 323,
"data": {
"text/plain": " year origin dest_state dest_city arrivals\n121235 2006 Vietnam Wisconsin Milwaukee 5\n121236 2007 Vietnam Wisconsin Milwaukee 18\n121237 2008 Vietnam Wisconsin Milwaukee 12\n121238 2009 Vietnam Wisconsin Milwaukee 4\n121239 2010 Vietnam Wisconsin Milwaukee 7\n121240 2011 Vietnam Wisconsin Milwaukee 0\n121241 2012 Vietnam Wisconsin Milwaukee 4\n121242 2013 Vietnam Wisconsin Milwaukee 2\n121243 2014 Vietnam Wisconsin Milwaukee 0\n121244 2015 Vietnam Wisconsin Milwaukee 0",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>year</th>\n <th>origin</th>\n <th>dest_state</th>\n <th>dest_city</th>\n <th>arrivals</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>121235</th>\n <td>2006</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>5</td>\n </tr>\n <tr>\n <th>121236</th>\n <td>2007</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>18</td>\n </tr>\n <tr>\n <th>121237</th>\n <td>2008</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>12</td>\n </tr>\n <tr>\n <th>121238</th>\n <td>2009</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>4</td>\n </tr>\n <tr>\n <th>121239</th>\n <td>2010</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>7</td>\n </tr>\n <tr>\n <th>121240</th>\n <td>2011</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n </tr>\n <tr>\n <th>121241</th>\n <td>2012</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>4</td>\n </tr>\n <tr>\n <th>121242</th>\n <td>2013</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>2</td>\n </tr>\n <tr>\n <th>121243</th>\n <td>2014</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n </tr>\n <tr>\n <th>121244</th>\n <td>2015</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"id": "92bf5efc",
"cell_type": "markdown",
"source": "</br>\nWe can accomplish the same task using a slice instead:"
},
{
"metadata": {
"trusted": true
},
"id": "3e090aba",
"cell_type": "code",
"source": "refugee_df[-10:]",
"execution_count": 324,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 324,
"data": {
"text/plain": " year origin dest_state dest_city arrivals\n121235 2006 Vietnam Wisconsin Milwaukee 5\n121236 2007 Vietnam Wisconsin Milwaukee 18\n121237 2008 Vietnam Wisconsin Milwaukee 12\n121238 2009 Vietnam Wisconsin Milwaukee 4\n121239 2010 Vietnam Wisconsin Milwaukee 7\n121240 2011 Vietnam Wisconsin Milwaukee 0\n121241 2012 Vietnam Wisconsin Milwaukee 4\n121242 2013 Vietnam Wisconsin Milwaukee 2\n121243 2014 Vietnam Wisconsin Milwaukee 0\n121244 2015 Vietnam Wisconsin Milwaukee 0",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>year</th>\n <th>origin</th>\n <th>dest_state</th>\n <th>dest_city</th>\n <th>arrivals</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>121235</th>\n <td>2006</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>5</td>\n </tr>\n <tr>\n <th>121236</th>\n <td>2007</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>18</td>\n </tr>\n <tr>\n <th>121237</th>\n <td>2008</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>12</td>\n </tr>\n <tr>\n <th>121238</th>\n <td>2009</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>4</td>\n </tr>\n <tr>\n <th>121239</th>\n <td>2010</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>7</td>\n </tr>\n <tr>\n <th>121240</th>\n <td>2011</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n </tr>\n <tr>\n <th>121241</th>\n <td>2012</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>4</td>\n </tr>\n <tr>\n <th>121242</th>\n <td>2013</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>2</td>\n </tr>\n <tr>\n <th>121243</th>\n <td>2014</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n </tr>\n <tr>\n <th>121244</th>\n <td>2015</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"id": "228389cc",
"cell_type": "markdown",
"source": "---\n### Display a random sample of the Dataframe"
},
{
"metadata": {},
"id": "88340b0e",
"cell_type": "markdown",
"source": "We can also look at a random sample of data with the `.sample()` method"
},
{
"metadata": {
"trusted": true
},
"id": "6c8c322b",
"cell_type": "code",
"source": "refugee_df.sample(15)",
"execution_count": 325,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 325,
"data": {
"text/plain": " year origin dest_state dest_city arrivals\n102329 2009 Dem. Rep. Congo Texas Cedar Park 0\n40110 2006 Ukraine Illinois Woodridge 0\n45485 2013 Cuba Louisiana Avondale 2\n62900 2015 Liberia Minnesota Brooklyn Center 1\n46604 2010 Iraq Maine Norway 10\n116748 2007 Latvia Washington Lynnwood 0\n5039 2014 Burma California Chula Vista 0\n66487 2005 Iraq Missouri Saint Louis 0\n108591 2012 Iraq Vermont Essex Junction 0\n94980 2008 Russia Pennsylvania Warminster 2\n4690 2006 Bhutan California Alameda 0\n72042 2005 Liberia New Jersey Englewood 0\n66931 2009 Somalia Missouri Kansas City 141\n91265 2011 Belarus Pennsylvania Millersburg 0\n2077 2011 Iraq Arizona Goodyear 1",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>year</th>\n <th>origin</th>\n <th>dest_state</th>\n <th>dest_city</th>\n <th>arrivals</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>102329</th>\n <td>2009</td>\n <td>Dem. Rep. Congo</td>\n <td>Texas</td>\n <td>Cedar Park</td>\n <td>0</td>\n </tr>\n <tr>\n <th>40110</th>\n <td>2006</td>\n <td>Ukraine</td>\n <td>Illinois</td>\n <td>Woodridge</td>\n <td>0</td>\n </tr>\n <tr>\n <th>45485</th>\n <td>2013</td>\n <td>Cuba</td>\n <td>Louisiana</td>\n <td>Avondale</td>\n <td>2</td>\n </tr>\n <tr>\n <th>62900</th>\n <td>2015</td>\n <td>Liberia</td>\n <td>Minnesota</td>\n <td>Brooklyn Center</td>\n <td>1</td>\n </tr>\n <tr>\n <th>46604</th>\n <td>2010</td>\n <td>Iraq</td>\n <td>Maine</td>\n <td>Norway</td>\n <td>10</td>\n </tr>\n <tr>\n <th>116748</th>\n <td>2007</td>\n <td>Latvia</td>\n <td>Washington</td>\n <td>Lynnwood</td>\n <td>0</td>\n </tr>\n <tr>\n <th>5039</th>\n <td>2014</td>\n <td>Burma</td>\n <td>California</td>\n <td>Chula Vista</td>\n <td>0</td>\n </tr>\n <tr>\n <th>66487</th>\n <td>2005</td>\n <td>Iraq</td>\n <td>Missouri</td>\n <td>Saint Louis</td>\n <td>0</td>\n </tr>\n <tr>\n <th>108591</th>\n <td>2012</td>\n <td>Iraq</td>\n <td>Vermont</td>\n <td>Essex Junction</td>\n <td>0</td>\n </tr>\n <tr>\n <th>94980</th>\n <td>2008</td>\n <td>Russia</td>\n <td>Pennsylvania</td>\n <td>Warminster</td>\n <td>2</td>\n </tr>\n <tr>\n <th>4690</th>\n <td>2006</td>\n <td>Bhutan</td>\n <td>California</td>\n <td>Alameda</td>\n <td>0</td>\n </tr>\n <tr>\n <th>72042</th>\n <td>2005</td>\n <td>Liberia</td>\n <td>New Jersey</td>\n <td>Englewood</td>\n <td>0</td>\n </tr>\n <tr>\n <th>66931</th>\n <td>2009</td>\n <td>Somalia</td>\n <td>Missouri</td>\n <td>Kansas City</td>\n <td>141</td>\n </tr>\n <tr>\n <th>91265</th>\n <td>2011</td>\n <td>Belarus</td>\n <td>Pennsylvania</td>\n <td>Millersburg</td>\n <td>0</td>\n </tr>\n <tr>\n <th>2077</th>\n <td>2011</td>\n <td>Iraq</td>\n <td>Arizona</td>\n <td>Goodyear</td>\n <td>1</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"id": "9068b6b8",
"cell_type": "markdown",
"source": "We can tell it's a random sample since the index numbers are completly disorganized. "
},
{
"metadata": {},
"id": "a8fd1633",
"cell_type": "markdown",
"source": "---\n## Basic data cleaning"
},
{
"metadata": {},
"id": "2ef0aa26",
"cell_type": "markdown",
"source": "### Data Types\n\nWe can get information about the columns in the DataFrame by using the `.info()` method."
},
{
"metadata": {
"trusted": true
},
"id": "c16c633b",
"cell_type": "code",
"source": "refugee_df.info()",
"execution_count": 326,
"outputs": [
{
"output_type": "stream",
"text": "<class 'pandas.core.frame.DataFrame'>\nRangeIndex: 121245 entries, 0 to 121244\nData columns (total 5 columns):\n # Column Non-Null Count Dtype \n--- ------ -------------- ----- \n 0 year 121245 non-null int64 \n 1 origin 121245 non-null object\n 2 dest_state 121245 non-null object\n 3 dest_city 121245 non-null object\n 4 arrivals 121245 non-null int64 \ndtypes: int64(2), object(3)\nmemory usage: 4.6+ MB\n",
"name": "stdout"
}
]
},
{
"metadata": {},
"id": "b1b6fc39",
"cell_type": "markdown",
"source": "This report tells us how many non-null, or non-blank, values are in each column, as well as what type of data is in each column. \n\nPandas uses a different lexicon to describe data types from those we learned in our intro to Python curriculum. Below is a table that explains what each data type means:\n\n\n<table>\n <tr>\n <td><strong>Pandas data types</strong>\n </td>\n <td><strong>Python data types</strong>\n </td>\n <td><strong>Usage</strong>\n </td>\n </tr>\n <tr>\n <td>object\n </td>\n <td>String or mixed\n </td>\n <td>Text or mixed numeric and non-numeric values\n </td>\n </tr>\n <tr>\n <td>float64\n </td>\n <td>float\n </td>\n <td>Floating point numbers\n </td>\n </tr>\n <tr>\n <td>int64\n </td>\n <td>integer\n </td>\n <td>Integer numbers\n </td>\n </tr>\n <tr>\n <td>datetime64\n </td>\n <td>NA\n </td>\n <td>Date and time values\n </td>\n </tr>\n</table>\n\n\n\n---\n\n### Converting data types\n\nKeeping this in mind, it looks as though the data type for the year column is a “int64” instead of being “datetime64.” "
},
{
"metadata": {
"trusted": true
},
"id": "cb96ca93",
"cell_type": "code",
"source": "refugee_df['year'] = pd.to_datetime(refugee_df['year'], format=\"%Y\")",
"execution_count": 327,
"outputs": []
},
{
"metadata": {},
"id": "de4671d6",
"cell_type": "markdown",
"source": "This command translates to: for the “year” column in the “refugee_df” DataFrame, use the `to_datetime` method in the Pandas library to convert the values in the “year” column in the “refugee_df” DataFrame to datetime data types. We specify the format as `%Y` since this is the format of our data. \n\n</br>\nWe can then check to see if the data type was properly converted using the `.dtypes` object, which is similar to the `.info()` method, except it only provides information on data types."
},
{
"metadata": {
"trusted": true
},
"id": "47936375",
"cell_type": "code",
"source": "refugee_df.dtypes",
"execution_count": 328,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 328,
"data": {
"text/plain": "year datetime64[ns]\norigin object\ndest_state object\ndest_city object\narrivals int64\ndtype: object"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "As we can see, the data in the “year” column was successfully transformed into the datetime64 data type.\n\n### Check for duplicate rows\n\nAs part of our data cleaning process, we want to check for duplicate rows. We can do this by using the `.duplicated()` method inside a filter to isolate only the rows in the DataFrame that are exact duplicates. Filtering data by certain values is similar to selecting columns. We add the parameter `keep=False`, which will display all the duplicated values in the dataset — rather than just the first duplicated value keep='first' or the last duplicated value keep='last'."
},
{
"metadata": {
"trusted": true
},
"id": "a3cb6597",
"cell_type": "code",
"source": "refugee_df[refugee_df.duplicated(keep=False)]",
"execution_count": 329,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 329,
"data": {
"text/plain": " year origin dest_state dest_city arrivals\n13 2007-01-01 Burma Alabama Auburn 0\n14 2008-01-01 Burma Alabama Auburn 0\n15 2009-01-01 Burma Alabama Auburn 0\n16 2010-01-01 Burma Alabama Auburn 0\n17 2007-01-01 Burma Alabama Auburn 0\n18 2008-01-01 Burma Alabama Auburn 0\n19 2009-01-01 Burma Alabama Auburn 0\n20 2010-01-01 Burma Alabama Auburn 0\n155 2013-01-01 Cuba Alabama Russellville 0\n156 2014-01-01 Cuba Alabama Russellville 0\n157 2015-01-01 Cuba Alabama Russellville 0\n158 2005-01-01 Cuba Alabama Theodore 0\n159 2006-01-01 Cuba Alabama Theodore 0\n160 2013-01-01 Cuba Alabama Russellville 0\n161 2014-01-01 Cuba Alabama Russellville 0\n162 2015-01-01 Cuba Alabama Russellville 0\n163 2005-01-01 Cuba Alabama Theodore 0\n164 2006-01-01 Cuba Alabama Theodore 0\n236 2012-01-01 Iran Alabama Mobile 1\n237 2013-01-01 Iran Alabama Mobile 6\n238 2014-01-01 Iran Alabama Mobile 3\n239 2015-01-01 Iran Alabama Mobile 5\n240 2005-01-01 Iran Alabama Pelham 0\n247 2012-01-01 Iran Alabama Mobile 1\n248 2013-01-01 Iran Alabama Mobile 6\n249 2014-01-01 Iran Alabama Mobile 3\n250 2015-01-01 Iran Alabama Mobile 5\n251 2005-01-01 Iran Alabama Pelham 0",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>year</th>\n <th>origin</th>\n <th>dest_state</th>\n <th>dest_city</th>\n <th>arrivals</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>13</th>\n <td>2007-01-01</td>\n <td>Burma</td>\n <td>Alabama</td>\n <td>Auburn</td>\n <td>0</td>\n </tr>\n <tr>\n <th>14</th>\n <td>2008-01-01</td>\n <td>Burma</td>\n <td>Alabama</td>\n <td>Auburn</td>\n <td>0</td>\n </tr>\n <tr>\n <th>15</th>\n <td>2009-01-01</td>\n <td>Burma</td>\n <td>Alabama</td>\n <td>Auburn</td>\n <td>0</td>\n </tr>\n <tr>\n <th>16</th>\n <td>2010-01-01</td>\n <td>Burma</td>\n <td>Alabama</td>\n <td>Auburn</td>\n <td>0</td>\n </tr>\n <tr>\n <th>17</th>\n <td>2007-01-01</td>\n <td>Burma</td>\n <td>Alabama</td>\n <td>Auburn</td>\n <td>0</td>\n </tr>\n <tr>\n <th>18</th>\n <td>2008-01-01</td>\n <td>Burma</td>\n <td>Alabama</td>\n <td>Auburn</td>\n <td>0</td>\n </tr>\n <tr>\n <th>19</th>\n <td>2009-01-01</td>\n <td>Burma</td>\n <td>Alabama</td>\n <td>Auburn</td>\n <td>0</td>\n </tr>\n <tr>\n <th>20</th>\n <td>2010-01-01</td>\n <td>Burma</td>\n <td>Alabama</td>\n <td>Auburn</td>\n <td>0</td>\n </tr>\n <tr>\n <th>155</th>\n <td>2013-01-01</td>\n <td>Cuba</td>\n <td>Alabama</td>\n <td>Russellville</td>\n <td>0</td>\n </tr>\n <tr>\n <th>156</th>\n <td>2014-01-01</td>\n <td>Cuba</td>\n <td>Alabama</td>\n <td>Russellville</td>\n <td>0</td>\n </tr>\n <tr>\n <th>157</th>\n <td>2015-01-01</td>\n <td>Cuba</td>\n <td>Alabama</td>\n <td>Russellville</td>\n <td>0</td>\n </tr>\n <tr>\n <th>158</th>\n <td>2005-01-01</td>\n <td>Cuba</td>\n <td>Alabama</td>\n <td>Theodore</td>\n <td>0</td>\n </tr>\n <tr>\n <th>159</th>\n <td>2006-01-01</td>\n <td>Cuba</td>\n <td>Alabama</td>\n <td>Theodore</td>\n <td>0</td>\n </tr>\n <tr>\n <th>160</th>\n <td>2013-01-01</td>\n <td>Cuba</td>\n <td>Alabama</td>\n <td>Russellville</td>\n <td>0</td>\n </tr>\n <tr>\n <th>161</th>\n <td>2014-01-01</td>\n <td>Cuba</td>\n <td>Alabama</td>\n <td>Russellville</td>\n <td>0</td>\n </tr>\n <tr>\n <th>162</th>\n <td>2015-01-01</td>\n <td>Cuba</td>\n <td>Alabama</td>\n <td>Russellville</td>\n <td>0</td>\n </tr>\n <tr>\n <th>163</th>\n <td>2005-01-01</td>\n <td>Cuba</td>\n <td>Alabama</td>\n <td>Theodore</td>\n <td>0</td>\n </tr>\n <tr>\n <th>164</th>\n <td>2006-01-01</td>\n <td>Cuba</td>\n <td>Alabama</td>\n <td>Theodore</td>\n <td>0</td>\n </tr>\n <tr>\n <th>236</th>\n <td>2012-01-01</td>\n <td>Iran</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>1</td>\n </tr>\n <tr>\n <th>237</th>\n <td>2013-01-01</td>\n <td>Iran</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>6</td>\n </tr>\n <tr>\n <th>238</th>\n <td>2014-01-01</td>\n <td>Iran</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>3</td>\n </tr>\n <tr>\n <th>239</th>\n <td>2015-01-01</td>\n <td>Iran</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>5</td>\n </tr>\n <tr>\n <th>240</th>\n <td>2005-01-01</td>\n <td>Iran</td>\n <td>Alabama</td>\n <td>Pelham</td>\n <td>0</td>\n </tr>\n <tr>\n <th>247</th>\n <td>2012-01-01</td>\n <td>Iran</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>1</td>\n </tr>\n <tr>\n <th>248</th>\n <td>2013-01-01</td>\n <td>Iran</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>6</td>\n </tr>\n <tr>\n <th>249</th>\n <td>2014-01-01</td>\n <td>Iran</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>3</td>\n </tr>\n <tr>\n <th>250</th>\n <td>2015-01-01</td>\n <td>Iran</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>5</td>\n </tr>\n <tr>\n <th>251</th>\n <td>2005-01-01</td>\n <td>Iran</td>\n <td>Alabama</td>\n <td>Pelham</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Looks like we have a few duplicate rows in our dataset. \n\nTo remove those duplicates, we can use the `.drop_duplicates()` method to drop duplicates from the DataFrame and select to keep the first instance of the duplicate or the last instance:"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_df = refugee_df.drop_duplicates(keep='first')",
"execution_count": 330,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "We can check to see if the command got rid of the duplicate rows by running the .duplicated() method again: "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_df[refugee_df.duplicated(keep=False)]",
"execution_count": 331,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 331,
"data": {
"text/plain": "Empty DataFrame\nColumns: [year, origin, dest_state, dest_city, arrivals]\nIndex: []",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>year</th>\n <th>origin</th>\n <th>dest_state</th>\n <th>dest_city</th>\n <th>arrivals</th>\n </tr>\n </thead>\n <tbody>\n </tbody>\n</table>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Great news! We successfully removed our duplicate rows!\n\n## Rename, select, drop, filter and add new columns\n### See list of columns\n\nTo see a full list of the columns in our DataFrame, we can run the following command:"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_df.columns",
"execution_count": 332,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 332,
"data": {
"text/plain": "Index(['year', 'origin', 'dest_state', 'dest_city', 'arrivals'], dtype='object')"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Our DataFrame has relatively few columns, so seeing the full list is not absolutely necessary in our case. This step becomes important when you are working with DataFrames with many columns. \n\n### Rename columns\n\nTo improve the readability of our dataset, we can rename columns. In our case, let’s rename “dest_state” as “state” and “dest_city” as “city”. We will use the `.rename()` method and the columns= parameter. Note that in this case we are setting the DataFrame equal to the returned value of the method so as to save the results into the DataFrame."
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_df=refugee_df.rename(columns={'dest_state': 'state','dest_city':'city' })\nrefugee_df",
"execution_count": 333,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 333,
"data": {
"text/plain": " year origin state city arrivals\n0 2005-01-01 Afghanistan Alabama Mobile 0\n1 2006-01-01 Afghanistan Alabama Mobile 0\n2 2007-01-01 Afghanistan Alabama Mobile 0\n3 2008-01-01 Afghanistan Alabama Mobile 0\n4 2009-01-01 Afghanistan Alabama Mobile 5\n... ... ... ... ... ...\n121240 2011-01-01 Vietnam Wisconsin Milwaukee 0\n121241 2012-01-01 Vietnam Wisconsin Milwaukee 4\n121242 2013-01-01 Vietnam Wisconsin Milwaukee 2\n121243 2014-01-01 Vietnam Wisconsin Milwaukee 0\n121244 2015-01-01 Vietnam Wisconsin Milwaukee 0\n\n[121231 rows x 5 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>year</th>\n <th>origin</th>\n <th>state</th>\n <th>city</th>\n <th>arrivals</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>2005-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>2006-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>2007-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2008-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>2009-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>5</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>121240</th>\n <td>2011-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n </tr>\n <tr>\n <th>121241</th>\n <td>2012-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>4</td>\n </tr>\n <tr>\n <th>121242</th>\n <td>2013-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>2</td>\n </tr>\n <tr>\n <th>121243</th>\n <td>2014-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n </tr>\n <tr>\n <th>121244</th>\n <td>2015-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n<p>121231 rows × 5 columns</p>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### Select columns\n\nLet’s say we wanted to view data from just one column in the DataFrame. To do this, we could run the following command:"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_df[['state']]",
"execution_count": 334,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 334,
"data": {
"text/plain": " state\n0 Alabama\n1 Alabama\n2 Alabama\n3 Alabama\n4 Alabama\n... ...\n121240 Wisconsin\n121241 Wisconsin\n121242 Wisconsin\n121243 Wisconsin\n121244 Wisconsin\n\n[121231 rows x 1 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>state</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Alabama</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Alabama</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Alabama</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Alabama</td>\n </tr>\n <tr>\n <th>4</th>\n <td>Alabama</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n </tr>\n <tr>\n <th>121240</th>\n <td>Wisconsin</td>\n </tr>\n <tr>\n <th>121241</th>\n <td>Wisconsin</td>\n </tr>\n <tr>\n <th>121242</th>\n <td>Wisconsin</td>\n </tr>\n <tr>\n <th>121243</th>\n <td>Wisconsin</td>\n </tr>\n <tr>\n <th>121244</th>\n <td>Wisconsin</td>\n </tr>\n </tbody>\n</table>\n<p>121231 rows × 1 columns</p>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Here we use double brackets around the column name to transform the column from a Series object into a DataFrame. Basically, the interior brackets are for lists, and the outside brackets are indexing operators. If you are curious to see the difference, try the following command instead: refugee_df['state']. \n\nTo view additional columns at the same time, you can add them to the list within the square brackets, separated by a comma. However, you can’t select multiple columns as a Series (try: refugee_df['state','city'])"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_df[['state','city']]",
"execution_count": 335,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 335,
"data": {
"text/plain": " state city\n0 Alabama Mobile\n1 Alabama Mobile\n2 Alabama Mobile\n3 Alabama Mobile\n4 Alabama Mobile\n... ... ...\n121240 Wisconsin Milwaukee\n121241 Wisconsin Milwaukee\n121242 Wisconsin Milwaukee\n121243 Wisconsin Milwaukee\n121244 Wisconsin Milwaukee\n\n[121231 rows x 2 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>state</th>\n <th>city</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Alabama</td>\n <td>Mobile</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Alabama</td>\n <td>Mobile</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Alabama</td>\n <td>Mobile</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Alabama</td>\n <td>Mobile</td>\n </tr>\n <tr>\n <th>4</th>\n <td>Alabama</td>\n <td>Mobile</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>121240</th>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n </tr>\n <tr>\n <th>121241</th>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n </tr>\n <tr>\n <th>121242</th>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n </tr>\n <tr>\n <th>121243</th>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n </tr>\n <tr>\n <th>121244</th>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n </tr>\n </tbody>\n</table>\n<p>121231 rows × 2 columns</p>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### Drop columns\n\nTo remove a column from the DataFrame, we can use the `.drop()` method and include the column name. In our case, we could drop the “city” column and save the result as a new DataFrame “refugee_drop_df” so we don’t override our original DataFrame. "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_drop_city_df = refugee_df.drop(columns=\"city\")",
"execution_count": 336,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_drop_city_df",
"execution_count": 337,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 337,
"data": {
"text/plain": " year origin state arrivals\n0 2005-01-01 Afghanistan Alabama 0\n1 2006-01-01 Afghanistan Alabama 0\n2 2007-01-01 Afghanistan Alabama 0\n3 2008-01-01 Afghanistan Alabama 0\n4 2009-01-01 Afghanistan Alabama 5\n... ... ... ... ...\n121240 2011-01-01 Vietnam Wisconsin 0\n121241 2012-01-01 Vietnam Wisconsin 4\n121242 2013-01-01 Vietnam Wisconsin 2\n121243 2014-01-01 Vietnam Wisconsin 0\n121244 2015-01-01 Vietnam Wisconsin 0\n\n[121231 rows x 4 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>year</th>\n <th>origin</th>\n <th>state</th>\n <th>arrivals</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>2005-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>2006-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>2007-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>0</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2008-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>2009-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>5</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>121240</th>\n <td>2011-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>0</td>\n </tr>\n <tr>\n <th>121241</th>\n <td>2012-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>4</td>\n </tr>\n <tr>\n <th>121242</th>\n <td>2013-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>2</td>\n </tr>\n <tr>\n <th>121243</th>\n <td>2014-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>0</td>\n </tr>\n <tr>\n <th>121244</th>\n <td>2015-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n<p>121231 rows × 4 columns</p>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### Filter columns\n\nWe can filter a Pandas DataFrame to select only certain values. Filtering data by certain values is similar to selecting columns.\n\nWe type the name of the DataFrame followed by square brackets and then, instead of inserting a column name, we insert a True/False condition. For example, to select only rows that contain the value “Iraq”, we could run the following command:"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_iraq_df = refugee_df[refugee_df['origin'] == 'Iraq']",
"execution_count": 338,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_iraq_df",
"execution_count": 339,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 339,
"data": {
"text/plain": " year origin state city arrivals\n267 2005-01-01 Iraq Alabama Birmingham 0\n268 2006-01-01 Iraq Alabama Birmingham 0\n269 2007-01-01 Iraq Alabama Birmingham 0\n270 2008-01-01 Iraq Alabama Birmingham 6\n271 2009-01-01 Iraq Alabama Birmingham 0\n... ... ... ... ... ...\n120503 2011-01-01 Iraq Wisconsin Wauwatosa 0\n120504 2012-01-01 Iraq Wisconsin Wauwatosa 0\n120505 2013-01-01 Iraq Wisconsin Wauwatosa 2\n120506 2014-01-01 Iraq Wisconsin Wauwatosa 0\n120507 2015-01-01 Iraq Wisconsin Wauwatosa 6\n\n[18205 rows x 5 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>year</th>\n <th>origin</th>\n <th>state</th>\n <th>city</th>\n <th>arrivals</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>267</th>\n <td>2005-01-01</td>\n <td>Iraq</td>\n <td>Alabama</td>\n <td>Birmingham</td>\n <td>0</td>\n </tr>\n <tr>\n <th>268</th>\n <td>2006-01-01</td>\n <td>Iraq</td>\n <td>Alabama</td>\n <td>Birmingham</td>\n <td>0</td>\n </tr>\n <tr>\n <th>269</th>\n <td>2007-01-01</td>\n <td>Iraq</td>\n <td>Alabama</td>\n <td>Birmingham</td>\n <td>0</td>\n </tr>\n <tr>\n <th>270</th>\n <td>2008-01-01</td>\n <td>Iraq</td>\n <td>Alabama</td>\n <td>Birmingham</td>\n <td>6</td>\n </tr>\n <tr>\n <th>271</th>\n <td>2009-01-01</td>\n <td>Iraq</td>\n <td>Alabama</td>\n <td>Birmingham</td>\n <td>0</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>120503</th>\n <td>2011-01-01</td>\n <td>Iraq</td>\n <td>Wisconsin</td>\n <td>Wauwatosa</td>\n <td>0</td>\n </tr>\n <tr>\n <th>120504</th>\n <td>2012-01-01</td>\n <td>Iraq</td>\n <td>Wisconsin</td>\n <td>Wauwatosa</td>\n <td>0</td>\n </tr>\n <tr>\n <th>120505</th>\n <td>2013-01-01</td>\n <td>Iraq</td>\n <td>Wisconsin</td>\n <td>Wauwatosa</td>\n <td>2</td>\n </tr>\n <tr>\n <th>120506</th>\n <td>2014-01-01</td>\n <td>Iraq</td>\n <td>Wisconsin</td>\n <td>Wauwatosa</td>\n <td>0</td>\n </tr>\n <tr>\n <th>120507</th>\n <td>2015-01-01</td>\n <td>Iraq</td>\n <td>Wisconsin</td>\n <td>Wauwatosa</td>\n <td>6</td>\n </tr>\n </tbody>\n</table>\n<p>18205 rows × 5 columns</p>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "We stored our results in a new variable `refugee_iraq_df`\n\n### Drop Rows\nIf we wanted to exclude all rows containing the value “Iraq”, we could run the following command:"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_drop_iraq_df = refugee_df[refugee_df['origin'] != 'Iraq']",
"execution_count": 340,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_drop_iraq_df",
"execution_count": 341,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 341,
"data": {
"text/plain": " year origin state city arrivals\n0 2005-01-01 Afghanistan Alabama Mobile 0\n1 2006-01-01 Afghanistan Alabama Mobile 0\n2 2007-01-01 Afghanistan Alabama Mobile 0\n3 2008-01-01 Afghanistan Alabama Mobile 0\n4 2009-01-01 Afghanistan Alabama Mobile 5\n... ... ... ... ... ...\n121240 2011-01-01 Vietnam Wisconsin Milwaukee 0\n121241 2012-01-01 Vietnam Wisconsin Milwaukee 4\n121242 2013-01-01 Vietnam Wisconsin Milwaukee 2\n121243 2014-01-01 Vietnam Wisconsin Milwaukee 0\n121244 2015-01-01 Vietnam Wisconsin Milwaukee 0\n\n[103026 rows x 5 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>year</th>\n <th>origin</th>\n <th>state</th>\n <th>city</th>\n <th>arrivals</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>2005-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>2006-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>2007-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2008-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>2009-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>5</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>121240</th>\n <td>2011-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n </tr>\n <tr>\n <th>121241</th>\n <td>2012-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>4</td>\n </tr>\n <tr>\n <th>121242</th>\n <td>2013-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>2</td>\n </tr>\n <tr>\n <th>121243</th>\n <td>2014-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n </tr>\n <tr>\n <th>121244</th>\n <td>2015-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n </tr>\n </tbody>\n</table>\n<p>103026 rows × 5 columns</p>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "### Add columns\n\nWe can also add columns to the DataFrame. For example, we can add a `percent_total` column to calculate the percentage of total refugee arrivals for each row. "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_df['percent_total'] = (refugee_df['arrivals'] / refugee_df['arrivals'].sum())*100",
"execution_count": 342,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_df",
"execution_count": 343,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 343,
"data": {
"text/plain": " year origin state city arrivals percent_total\n0 2005-01-01 Afghanistan Alabama Mobile 0 0.000000\n1 2006-01-01 Afghanistan Alabama Mobile 0 0.000000\n2 2007-01-01 Afghanistan Alabama Mobile 0 0.000000\n3 2008-01-01 Afghanistan Alabama Mobile 0 0.000000\n4 2009-01-01 Afghanistan Alabama Mobile 5 0.000743\n... ... ... ... ... ... ...\n121240 2011-01-01 Vietnam Wisconsin Milwaukee 0 0.000000\n121241 2012-01-01 Vietnam Wisconsin Milwaukee 4 0.000595\n121242 2013-01-01 Vietnam Wisconsin Milwaukee 2 0.000297\n121243 2014-01-01 Vietnam Wisconsin Milwaukee 0 0.000000\n121244 2015-01-01 Vietnam Wisconsin Milwaukee 0 0.000000\n\n[121231 rows x 6 columns]",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>year</th>\n <th>origin</th>\n <th>state</th>\n <th>city</th>\n <th>arrivals</th>\n <th>percent_total</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>2005-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>1</th>\n <td>2006-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>2</th>\n <td>2007-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>3</th>\n <td>2008-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>0</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>4</th>\n <td>2009-01-01</td>\n <td>Afghanistan</td>\n <td>Alabama</td>\n <td>Mobile</td>\n <td>5</td>\n <td>0.000743</td>\n </tr>\n <tr>\n <th>...</th>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n <td>...</td>\n </tr>\n <tr>\n <th>121240</th>\n <td>2011-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>121241</th>\n <td>2012-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>4</td>\n <td>0.000595</td>\n </tr>\n <tr>\n <th>121242</th>\n <td>2013-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>2</td>\n <td>0.000297</td>\n </tr>\n <tr>\n <th>121243</th>\n <td>2014-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n <td>0.000000</td>\n </tr>\n <tr>\n <th>121244</th>\n <td>2015-01-01</td>\n <td>Vietnam</td>\n <td>Wisconsin</td>\n <td>Milwaukee</td>\n <td>0</td>\n <td>0.000000</td>\n </tr>\n </tbody>\n</table>\n<p>121231 rows × 6 columns</p>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "*_Note: `refugee_df['arrivals'].sum()` calculates the sum of all the values in the arrivals column._ \n\n\n\nYou can read the command we just ran as: create a new column that calculates the number of arrivals in a row divided by the total number of arrivals in the dataset, times 100. The result of this calculation will equal the percentage of total refugee arrivals for each row."
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Sort Columns, Groupby Columns, & Calculations\n\n### Stacking requests\n\nIn this lesson, we will be using commands that stack various requests such as methods, parameters, operators, and more to define the command. Pandas encourages this kind of stacking, but it can seem overwhelming at first to beginners. For example, as we will see below, a command could include two or more methods that stack on top of each other, and end with a slice operator to view only the top N rows of the results. In addition, a command can include specific parameters to call out a particular column or to sort the data in descending order. \n\nWe will move slowly through each of the following commands to break them down. \n\n### Sort columns\n\nTo sort a DataFrame, we can use the `.sort_values()` method with the parameter by= and including the name of the column we want to sort by written in quotation marks. \n\nFor example, we can sort the DataFrame by the arrivals column:"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_df.sort_values(by='arrivals', ascending=False)[:15]",
"execution_count": 344,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 344,
"data": {
"text/plain": " year origin state city arrivals percent_total\n11359 2009-01-01 Iraq California El Cajon 2813 0.418279\n8718 2008-01-01 Iran California Glendale 2025 0.301107\n11360 2010-01-01 Iraq California El Cajon 1811 0.269286\n8719 2009-01-01 Iran California Glendale 1722 0.256053\n58761 2012-01-01 Iraq Michigan Southfield 1720 0.255755\n11362 2012-01-01 Iraq California El Cajon 1698 0.252484\n8717 2007-01-01 Iran California Glendale 1637 0.243414\n64090 2006-01-01 Somalia Minnesota Minneapolis 1586 0.235830\n11358 2008-01-01 Iraq California El Cajon 1569 0.233302\n25699 2005-01-01 Cuba Florida Miami 1537 0.228544\n87927 2006-01-01 Somalia Ohio Columbus 1319 0.196129\n11363 2013-01-01 Iraq California El Cajon 1238 0.184084\n40503 2014-01-01 Burma Indiana Indianapolis 1211 0.180070\n25704 2010-01-01 Cuba Florida Miami 1151 0.171148\n58829 2014-01-01 Iraq Michigan Troy 1095 0.162821",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>year</th>\n <th>origin</th>\n <th>state</th>\n <th>city</th>\n <th>arrivals</th>\n <th>percent_total</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>11359</th>\n <td>2009-01-01</td>\n <td>Iraq</td>\n <td>California</td>\n <td>El Cajon</td>\n <td>2813</td>\n <td>0.418279</td>\n </tr>\n <tr>\n <th>8718</th>\n <td>2008-01-01</td>\n <td>Iran</td>\n <td>California</td>\n <td>Glendale</td>\n <td>2025</td>\n <td>0.301107</td>\n </tr>\n <tr>\n <th>11360</th>\n <td>2010-01-01</td>\n <td>Iraq</td>\n <td>California</td>\n <td>El Cajon</td>\n <td>1811</td>\n <td>0.269286</td>\n </tr>\n <tr>\n <th>8719</th>\n <td>2009-01-01</td>\n <td>Iran</td>\n <td>California</td>\n <td>Glendale</td>\n <td>1722</td>\n <td>0.256053</td>\n </tr>\n <tr>\n <th>58761</th>\n <td>2012-01-01</td>\n <td>Iraq</td>\n <td>Michigan</td>\n <td>Southfield</td>\n <td>1720</td>\n <td>0.255755</td>\n </tr>\n <tr>\n <th>11362</th>\n <td>2012-01-01</td>\n <td>Iraq</td>\n <td>California</td>\n <td>El Cajon</td>\n <td>1698</td>\n <td>0.252484</td>\n </tr>\n <tr>\n <th>8717</th>\n <td>2007-01-01</td>\n <td>Iran</td>\n <td>California</td>\n <td>Glendale</td>\n <td>1637</td>\n <td>0.243414</td>\n </tr>\n <tr>\n <th>64090</th>\n <td>2006-01-01</td>\n <td>Somalia</td>\n <td>Minnesota</td>\n <td>Minneapolis</td>\n <td>1586</td>\n <td>0.235830</td>\n </tr>\n <tr>\n <th>11358</th>\n <td>2008-01-01</td>\n <td>Iraq</td>\n <td>California</td>\n <td>El Cajon</td>\n <td>1569</td>\n <td>0.233302</td>\n </tr>\n <tr>\n <th>25699</th>\n <td>2005-01-01</td>\n <td>Cuba</td>\n <td>Florida</td>\n <td>Miami</td>\n <td>1537</td>\n <td>0.228544</td>\n </tr>\n <tr>\n <th>87927</th>\n <td>2006-01-01</td>\n <td>Somalia</td>\n <td>Ohio</td>\n <td>Columbus</td>\n <td>1319</td>\n <td>0.196129</td>\n </tr>\n <tr>\n <th>11363</th>\n <td>2013-01-01</td>\n <td>Iraq</td>\n <td>California</td>\n <td>El Cajon</td>\n <td>1238</td>\n <td>0.184084</td>\n </tr>\n <tr>\n <th>40503</th>\n <td>2014-01-01</td>\n <td>Burma</td>\n <td>Indiana</td>\n <td>Indianapolis</td>\n <td>1211</td>\n <td>0.180070</td>\n </tr>\n <tr>\n <th>25704</th>\n <td>2010-01-01</td>\n <td>Cuba</td>\n <td>Florida</td>\n <td>Miami</td>\n <td>1151</td>\n <td>0.171148</td>\n </tr>\n <tr>\n <th>58829</th>\n <td>2014-01-01</td>\n <td>Iraq</td>\n <td>Michigan</td>\n <td>Troy</td>\n <td>1095</td>\n <td>0.162821</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Note: In the command above, we used the `by=` parameter to specify that the data be sorted according to the `arrivals` column and we added the `ascending=False` parameter in order to request that the data be displayed with the highest number first. By default, Pandas will sort in `ascending` order, meaning from the smallest value to the largest value. We also added a Python list slice (i.e., [:15]) to view just the top 15 rows.\n\n### Groupby Columns\n\nWe can group data and perform calculations on the groups using the `.groupby()` method. For example, to see the breakdown of the number of arrivals by country of origin, we can use the following command:"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_df.groupby('origin')",
"execution_count": 345,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 345,
"data": {
"text/plain": "<pandas.core.groupby.generic.DataFrameGroupBy object at 0x7f9b81ebc100>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "This command created a Groupby object—grouped data that we can use to perform calculations such as counting the number of non-blank values in each column for each arrival by country of origin.\n\nNext, we will use the following command to sum the number of refugee arrivals by country of origin, with the output showing the top twenty rows sorted by descending order:"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_df.groupby('origin')['arrivals'].sum().sort_values(ascending=False)[:20]",
"execution_count": 346,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 346,
"data": {
"text/plain": "origin\nBurma 151875\nIraq 127326\nBhutan 85316\nSomalia 71120\nCuba 39946\nIran 36683\nDem. Rep. Congo 25493\nRussia 15656\nEritrea 14645\nSudan 12636\nUkraine 11727\nBurundi 11152\nVietnam 10769\nLiberia 9424\nEthiopia 8487\nAfghanistan 6751\nLaos 6609\nMoldova 4482\nSyria 2359\nColombia 1956\nName: arrivals, dtype: int64"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "These results show us the total number of arrivals by country of origin across the 2005-2015 period, in descending order, sliced for the top 20 results. \n\nLet’s unpack the command to better understand these results: \n\n\n\n* We have three stacked methods here: .groupby(), .count(), and .sort_values(). \n* groupby('origin')['arrivals']: For the Groupby object we defined in the previous step, groupby(‘origin’), we are isolating the “arrivals” column. Basically, we are asking to view the number of refugee arrivals by country of origin. \n* .sum(): This method adds non-blank cells for each column or row. The results we see in the output show the total number of refugee arrivals by country of origin. \n* .sort_values(ascending=False): This method specifies how we want our output to be sorted. We include the ascending=False parameter in order to request that the data be displayed with the highest percentage first.\n* [:20]: This Python slide specifies that we just want to see the top 20 rows.\n\n### Convert Series Object to Dataframe\nYou will notice that our output is not a Dataframe. Instead, it's a Series Object, which doesn't allow us to select data or make further calculations on the data. We can convert it to a Dataframe by first storing the command above in a new variable and stacking two extra commands\" `to_frame` and `reset_index`:"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "ref_sum_df=refugee_df.groupby('origin')['arrivals'].sum().sort_values(ascending=False)[:20]\nref_sum_df = ref_sum_df.to_frame().reset_index()\nref_sum_df",
"execution_count": 347,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 347,
"data": {
"text/plain": " origin arrivals\n0 Burma 151875\n1 Iraq 127326\n2 Bhutan 85316\n3 Somalia 71120\n4 Cuba 39946\n5 Iran 36683\n6 Dem. Rep. Congo 25493\n7 Russia 15656\n8 Eritrea 14645\n9 Sudan 12636\n10 Ukraine 11727\n11 Burundi 11152\n12 Vietnam 10769\n13 Liberia 9424\n14 Ethiopia 8487\n15 Afghanistan 6751\n16 Laos 6609\n17 Moldova 4482\n18 Syria 2359\n19 Colombia 1956",
"text/html": "<div>\n<style scoped>\n .dataframe tbody tr th:only-of-type {\n vertical-align: middle;\n }\n\n .dataframe tbody tr th {\n vertical-align: top;\n }\n\n .dataframe thead th {\n text-align: right;\n }\n</style>\n<table border=\"1\" class=\"dataframe\">\n <thead>\n <tr style=\"text-align: right;\">\n <th></th>\n <th>origin</th>\n <th>arrivals</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Burma</td>\n <td>151875</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Iraq</td>\n <td>127326</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Bhutan</td>\n <td>85316</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Somalia</td>\n <td>71120</td>\n </tr>\n <tr>\n <th>4</th>\n <td>Cuba</td>\n <td>39946</td>\n </tr>\n <tr>\n <th>5</th>\n <td>Iran</td>\n <td>36683</td>\n </tr>\n <tr>\n <th>6</th>\n <td>Dem. Rep. Congo</td>\n <td>25493</td>\n </tr>\n <tr>\n <th>7</th>\n <td>Russia</td>\n <td>15656</td>\n </tr>\n <tr>\n <th>8</th>\n <td>Eritrea</td>\n <td>14645</td>\n </tr>\n <tr>\n <th>9</th>\n <td>Sudan</td>\n <td>12636</td>\n </tr>\n <tr>\n <th>10</th>\n <td>Ukraine</td>\n <td>11727</td>\n </tr>\n <tr>\n <th>11</th>\n <td>Burundi</td>\n <td>11152</td>\n </tr>\n <tr>\n <th>12</th>\n <td>Vietnam</td>\n <td>10769</td>\n </tr>\n <tr>\n <th>13</th>\n <td>Liberia</td>\n <td>9424</td>\n </tr>\n <tr>\n <th>14</th>\n <td>Ethiopia</td>\n <td>8487</td>\n </tr>\n <tr>\n <th>15</th>\n <td>Afghanistan</td>\n <td>6751</td>\n </tr>\n <tr>\n <th>16</th>\n <td>Laos</td>\n <td>6609</td>\n </tr>\n <tr>\n <th>17</th>\n <td>Moldova</td>\n <td>4482</td>\n </tr>\n <tr>\n <th>18</th>\n <td>Syria</td>\n <td>2359</td>\n </tr>\n <tr>\n <th>19</th>\n <td>Colombia</td>\n <td>1956</td>\n </tr>\n </tbody>\n</table>\n</div>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "## Basic data visualizations\n\nTo create plots and data visualization in Pandas, we can add the .plot() method to any DataFrame or Series object that has appropriate numeric data.\n\nWe can specify the title with the title= parameter and the kind of plot by altering the kind= parameter:\n\n\n\n* ‘bar’ or ‘barh’ for bar plots (h is for horizontal)\n* ‘hist’ for histogram\n* ‘box’ for boxplot\n* ‘kde’ or ‘density’ for density plots\n* ‘area’ for area plots\n* ‘scatter’ for scatter plots\n* ‘hexbin’ for hexagonal bin plots\n* ‘pie’ for pie plots\n\n### Bar Charts\nFor example, we can visualize the data we got from our Groupby command looking at the total number of refugees by country of arrival as a bar chart:"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "ref_sum_df.plot(kind='bar', x= 'origin', y='arrivals', \n title='Total number of refugee arrivals in the U.S. \\n by country of origin')",
"execution_count": 348,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 348,
"data": {
"text/plain": "<Axes: title={'center': 'Total number of refugee arrivals in the U.S. \\n by country of origin'}, xlabel='origin'>"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "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A6HnKLwdZmFhwUCIiIioinletxZ2liYiIiKtxUCIiIiItBYDISIiItJa7CNERERUAfn5+cjLy3vZ1dB6+vr60NXVVTsfBkJERETlIIRAamoqMjIyXnZV6P+ztLSEvb29WvP8MRAiIiIqh8IgyNbWFiYmJpxk9yUSQuDhw4dIS0sDANSoUeOF82IgRERE9Bz5+flSEGRtbf2yq0MAjI2NAQBpaWmwtbV94dtk7CxNRET0HIV9gkxMTF5yTaiowuuhTp8tBkJERETlxNthrxY5rgcDISIiItJaDISIiIio3JydnbFs2TLZ8rtx4wYUCgUSEhJky7Mi2FmaiIhIDc6T91RqeTfm+VZqecXFx8fD1NT0pdZBTmwRIiIiIhWldT7Ozc0FAFSvXv216jTOQIiIiOg1FxUVhXfeeQeWlpawtraGn58frl27BuD/bk19//338Pb2hpGREcLDwxEYGIiePXti7ty5cHBwQIMGDQCo3hrr27cv+vTpo1JWXl4ebGxssGnTpueWXZr09HT069cP1atXh7GxMerXry/lpQkMhIiIiF5z2dnZGDduHOLj4xETEwMdHR28//77KCgokNJ89tlnCAkJQVJSEjp16gQAiImJQVJSEvbv34/du3eXyLdfv37YtWsXHjx4IG3bt28fsrOz8cEHH5S77KK++OILXLx4Eb/++iuSkpKwZs0a2NjYyHk6VLCPkBpe5L7wy763S0RE2qcwKCm0ceNG2Nra4uLFizAzMwMAjBkzBr169VJJZ2pqiq+//hoGBgal5tupUyeYmpoiMjISAQEBAIDt27ejW7dusLCweG7Z7u7uJfJMTk5G06ZN0bx5cwBPW6A0iS1CREREr7lr167B398fderUgYWFBWrXrg3gadBRqDDwKMrDw+OZQRDwdOHTjz76CNu2bQPwtPXn559/Rr9+/SpUdlHDhw9HREQEmjRpgkmTJuHYsWMVP+AKYCBERET0muvWrRvu3buHDRs24Pjx4zh+/DiA/+sADaDUkWDlGR3Wr18/HDhwAGlpadi5cyeMjIzQpUuXCpVdVJcuXXDz5k2MGTMGt27dQvv27TFhwoQKHW9FMBAiIiJ6jd27dw9JSUn4/PPP0b59e7i6uiI9PV22/Fu1agVHR0d899132LZtGz766COpFelFy65evToCAwMRHh6OZcuWYf369bLVtzj2ESIiInqNWVlZwdraGuvXr0eNGjWQnJyMyZMny5a/QqGAv78/1q5diytXruDQoUNqlT1t2jR4enqiYcOGyMnJwe7du+Hq6ipbfYtjIERERKSGV30QjI6ODiIiIhASEgJ3d3e4uLjgq6++gre3t2xl9OvXD3PmzIGTkxNat26tVtkGBgaYMmUKbty4AWNjY7z77ruIiIiQra7FKYQQQmO5vwaysrKgVCqRmZkp9YAvxFFjRETa4fHjx7h+/Tpq164NIyOjl10d+v/Kui5lfX8XxT5CREREpLUYCBEREZHWYiBEREREWouBEBEREWktBkJERETlxPFFrxY5rgcDISIioufQ19cHADx8+PAl14SKKrwehdfnRXAeISIioufQ1dWFpaUl0tLSAAAmJiZQKBQvuVbaSwiBhw8fIi0tDZaWltDV1X3hvBgIERERlYO9vT0ASMEQvXyWlpbSdXlRDISIiIjKQaFQoEaNGrC1tUVeXt7Lro7W09fXV6slqBADISIiogrQ1dWV5QuYXg3sLE1ERERai4EQERERaS0GQkRERKS1GAgRERGR1mIgRERERFqLgRARERFprQoHQr/99hu6desGBwcHKBQK7Ny585lphw0bBoVCgWXLlqlsz8nJwahRo2BjYwNTU1N0794df//9t0qa9PR0BAQEQKlUQqlUIiAgABkZGSppkpOT0a1bN5iamsLGxgYhISHIzc1VSXP+/Hm0bdsWxsbGqFmzJmbOnMm1YoiIiAjACwRC2dnZaNy4MVauXFlmup07d+L48eNwcHAosW/MmDGIjIxEREQEjh49igcPHsDPzw/5+flSGn9/fyQkJCAqKgpRUVFISEhAQECAtD8/Px++vr7Izs7G0aNHERERgR07dmD8+PFSmqysLHTs2BEODg6Ij4/HihUrsGjRIixZsqSih01ERESvoQpPqNilSxd06dKlzDT//PMPRo4ciX379sHX11dlX2ZmJjZu3IitW7eiQ4cOAIDw8HA4OjriwIED6NSpE5KSkhAVFYW4uDh4eXkBADZs2ICWLVvi8uXLcHFxQXR0NC5evIiUlBQp2Fq8eDECAwMxe/ZsWFhYYNu2bXj8+DHCwsJgaGgId3d3XLlyBUuWLMG4ceO4TgwREZGWk72PUEFBAQICAjBx4kQ0bNiwxP5Tp04hLy8PPj4+0jYHBwe4u7vj2LFjAIDY2FgolUopCAKAt99+G0qlUiWNu7u7SotTp06dkJOTg1OnTklp2rZtC0NDQ5U0t27dwo0bN0qtf05ODrKyslQeRERE9HqSPRCaP38+9PT0EBISUur+1NRUGBgYwMrKSmW7nZ0dUlNTpTS2trYlXmtra6uSxs7OTmW/lZUVDAwMykxT+LwwTXFz586V+iUplUo4Ojo+75CJiIioipI1EDp16hSWL1+OsLCwCt92EkKovKa018uRprCj9LPqN2XKFGRmZkqPlJSUCh0HERERVR2yBkK///470tLSUKtWLejp6UFPTw83b97E+PHj4ezsDACwt7dHbm4u0tPTVV6blpYmtdbY29vjzp07JfK/e/euSprirTrp6enIy8srM01aWhoAlGgpKmRoaAgLCwuVBxEREb2eZA2EAgICcO7cOSQkJEgPBwcHTJw4Efv27QMAeHp6Ql9fH/v375ded/v2bSQmJqJVq1YAgJYtWyIzMxMnTpyQ0hw/fhyZmZkqaRITE3H79m0pTXR0NAwNDeHp6Sml+e2331SG1EdHR8PBwUEKzIiIiEh7VXjU2IMHD/Dnn39Kz69fv46EhARUq1YNtWrVgrW1tUp6fX192Nvbw8XFBQCgVCoRFBSE8ePHw9raGtWqVcOECRPg4eEhjSJzdXVF586dMWTIEKxbtw4AMHToUPj5+Un5+Pj4wM3NDQEBAVi4cCHu37+PCRMmYMiQIVIrjr+/P2bMmIHAwED873//w9WrVzFnzhxMmzaNI8aIiIio4oHQyZMn0a5dO+n5uHHjAAADBw5EWFhYufJYunQp9PT00Lt3bzx69Ajt27dHWFgYdHV1pTTbtm1DSEiINLqse/fuKnMX6erqYs+ePQgODkbr1q1hbGwMf39/LFq0SEqjVCqxf/9+jBgxAs2bN4eVlRXGjRsn1ZmIiIi0m0JwmuUyZWVlQalUIjMzs0R/IefJeyqc3415vs9PRERERGop6/u7KK41RkRERFqLgRARERFpLQZCREREpLUYCBEREZHWYiBEREREWouBEBEREWktBkJERESktRgIERERkdZiIERERERai4EQERERaS0GQkRERKS1GAgRERGR1mIgRERERFqLgRARERFpLQZCREREpLUYCBEREZHWYiBEREREWouBEBEREWktBkJERESktRgIERERkdZiIERERERai4EQERERaS29l10B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SrTIpKWlSa039vb2yM3NRXp6eplp7ty5U6L8u3fvqqQpXk56ejry8vJKtBQVMjQ0hIWFhcqDiIiIXk+yB0KtW7fG5cuXVbZduXIFTk5OAIDatWvD3t4e+/fvl/bn5ubiyJEjaNWqFQDA09MT+vr6Kmlu376NxMREKU3Lli2RmZmJEydOSGmOHz+OzMxMlTSJiYm4ffu2lCY6OhqGhobw9PSU+ciJiIioqpF91NjYsWPRqlUrzJkzB71798aJEyewfv16rF+/HsDTW1VjxozBnDlzUL9+fdSvXx9z5syBiYkJ/P39AQBKpRJBQUEYP348rK2tUa1aNUyYMAEeHh7SKDJXV1d07twZQ4YMwbp16wAAQ4cOhZ+fH1xcXAAAPj4+cHNzQ0BAABYuXIj79+9jwoQJGDJkCFt6iIiISP5A6K233kJkZCSmTJmCmTNnonbt2li2bBn69esnpZk0aRIePXqE4OBgpKenw8vLC9HR0TA3N5fSLF26FHp6eujduzcePXqE9u3bIywsDLq6ulKabdu2ISQkRBpd1r17d6xcuVLar6uriz179iA4OBitW7eGsbEx/P39sWjRIrkPm4iIiKoghRBCvOxKvMqysrKgVCqRmZlZohXJefKeCud3Y55vhdJXtIyK5v86lUFERFSorO/vorjWGBEREWktBkJERESktRgIERERkdZiIERERERai4EQERERaS0GQkRERKS1GAgRERGR1mIgRERERFqLgRARERFpLQZCREREpLUYCBEREZHWYiBEREREWouBEBEREWktBkJERESktRgIERERkdZiIERERERai4EQERERaS0GQkRERKS1GAgRERGR1mIgRERERFqLgRARERFpLQZCREREpLUYCBEREZHWYiBEREREWouBEBEREWktBkJERESktRgIERERkdZiIERERERai4EQERERaS0GQkRERKS1GAgRERGR1mIgRERERFqLgRARERFpLQZCREREpLUYCBEREZHW0nggNHfuXCgUCowZM0baJoRAaGgoHBwcYGxsDG9vb1y4cEHldTk5ORg1ahRsbGxgamqK7t274++//1ZJk56ejoCAACiVSiiVSgQEBCAjI0MlTXJyMrp16wZTU1PY2NggJCQEubm5mjpcIiIiqkI0GgjFx8dj/fr1aNSokcr2BQsWYMmSJVi5ciXi4+Nhb2+Pjh07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fgqFAmPHjsXYsWOlOyvm5ubylyPkbrPWMpW1krAm2djY4ODBg2jUqBEePHgACwsLnDhxQnqzXLp0CW+//TYyMjLULqtHjx7IyMjAt99+K62b9c8//6Bfv36wsrIqcUuIqiYdHR106dJF+oHwyy+/4L333lP5gRAVFVUlhvBWlsqai+zff/9FQUFBmVM1VNTz1lLMyMjAkSNHZLnederUQXx8fIn1sjIyMtCsWTO15hHKz8/H0qVL8f333yM5ObnE+mxyzCBeWezs7LB169YSLe379u3DgAEDcOfOnZdUs1cPW4TU9CoHOOVVmf2cVq5ciR49esDZ2RmOjo5QKBS4efMmGjVqhPDwcFnKoJevPK1OAwYMqKzqvLDSZowHnk5G5+LigkmTJsm2oHJlzUVmY2MjW16FnjfrvFKplO1637hxo9SAKicnB3///bdaec+YMQNff/01xo0bhy+++AJTp07FjRs3sHPnTkybNk2tvCvbxx9/jKCgICxatEilf83EiRPRt2/fl129Z3rWLenSyDUBLwMhAlB5/ZwcHR1x+vRp7N+/X1pZvWHDhmjfvr1GyqOX43X4gQA87SdV2nshIyMDJ06cQP/+/bF582Z89NFHL1yGpvroNWvWDDExMbCysnrul4u6XyiVcb2LTta4b98+leArPz8fMTExqF27tlplbNu2DRs2bICvry9mzJiBvn37om7dumjUqBHi4uJk7ZeiaYsWLYJCocCAAQPw5MkTCCFgYGCA4cOHY968eS+7es/0Mjqs89YYVcptjNLWhtq8eTOmT5+Ohw8fyr42FFFlWLVqFbZs2YLjx4+/cB5dunSBnp4ePvvsM4SHh2P37t3w8fFR6aN36tQpxMXFVSjfGTNmoEOHDmjdujVmzJhRZtqq0AencCXy0hZ41dfXh7OzMxYvXgw/P78XLsPU1BRJSUmoVasWatSogT179ki325o2bYrMzEy1juFlePjwobSsUb169bjGYykYCFGl9HMqbW0oT09PDBw4sNLXhiKSy9WrV9GiRQukp6e/cB6a7KOno6ODpk2bIigoCP369ZNl4eSXrXbt2oiPj9fILT4XFxds2bIFXl5eePfdd+Hr64vJkyfju+++w6hRo5CWliZ7mXIbPHhwudLJtYxOZTh16pS01pibmxuaNm0qbwGyzUhEVAZ7e3uViSb/97//idatW0vP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\n"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Let’s unpack the command to better understand these results:\n\n* ref_sum_df: This is the variable we created in the previous lesson summing the number of refugee arrivals by country of origin, with the output showing the top twenty rows sorted by descending order\n* .plot(kind='bar', x= 'origin', y='arrivals', title='Total number of refugee arrivals in the U.S. \\n by country of origin'):\n * Here we are using the .plot() method to create a visualization, and we are specifying that we want a bar chart with the “kind=’bar’” parameter. \n * We also specify the values for the x axis (orgin) and y axis (arrivals)\n * We are also giving the chart a title with the “title='Total number of refugee arrivals in the U.S. \\n by country of origin'” parameter. \n * Note: By adding “\\n” in the title text, we signify that the text that follows should be on a new line. \n\n### Pie Charts\nWe can also visualize the data as a pie chart:"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "ref_sum_df.set_index('origin')[:10].plot(kind='pie', y='arrivals', \n title='Refugee arrivals in the U.S.')",
"execution_count": 349,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 349,
"data": {
"text/plain": "<Axes: title={'center': 'Refugee arrivals in the U.S.'}, ylabel='arrivals'>"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "- We start by setting the index of the dataframe to the `origin` column. This ensures that our legend will show the country names. \n- We slice our results to show just the top 10 countries. This makes our chart more legible. \n- Next, we use the `.plot()` method, specifying `pie` as the type of plot\n- We also specify the y values - in our case `arrivals`\n\n\n\n\n### Time Series\n\nWe can also create time series using the Groupby method. For example, if we wanted to visualize the total number of refugees resettled in the U.S. across the 2005-2015 period, we would first create a Groupby object based on the “year” column (refer back to lesson 7 for more on Groupby objects). \n\n"
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_df.groupby('year')",
"execution_count": 350,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 350,
"data": {
"text/plain": "<pandas.core.groupby.generic.DataFrameGroupBy object at 0x7f9bd6807e80>"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Next, we can create a new variable calculating the average number of refugees being resettled over time. "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "total_arrivals_by_year = refugee_df.groupby('year')['arrivals'].sum()",
"execution_count": 351,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "Let’s break this command down:\n\n\n\n* We have two stacked methods here: .groupby() and .sum()\n* groupby('year')['arrivals']: For the Groupby object, groupby(year), we are isolating the “arrivals” column. Basically, we are asking to view the number of refugee arrivals by year. \n* .sum(): This method returns the sum of the values over the requested axis. In our case, it will calculate the total number of refugee arrivals per year.\n* We store our results in the `total_arrivals_by_year` variable\n\nFinally, we can add the .plot() method to create a line chart. "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "total_arrivals_by_year.plot(kind='line', title=\"Total Number of Refugee Arrivals by Year\")",
"execution_count": 352,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 352,
"data": {
"text/plain": "<Axes: title={'center': 'Total Number of Refugee Arrivals by Year'}, xlabel='year'>"
},
"metadata": {}
},
{
"output_type": "display_data",
"data": {
"text/plain": "<Figure size 640x480 with 1 Axes>",
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"metadata": {},
"cell_type": "markdown",
"source": "In this command, we are adding the .plot() method to request a chart, and specifying that we want a line graph with the “kind=line” parameter. We are also giving the chart a title with the “title='Total Number of Refugee Arrivals by Year'” parameter. \n\n\n\n## Write to CSV\n\nTo output a new CSV file, we can use the .to_csv method with a name for the file in quotation marks. For example, since we added the percent_total column to the refugee_df DataFrame, we may want to download the updated DataFrame as a CSV file to use it with other programs. "
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "refugee_df.to_csv(\"new_refugee.csv\", encoding='utf-8', index=False)",
"execution_count": 353,
"outputs": []
},
{
"metadata": {},
"cell_type": "markdown",
"source": "In addition to a filename, we’re also specifying that the encoding is utf-8 and that the Index (the bolded left-most column) is not included in the CSV file.\n\n \n\n## Building your Pandas skills with the Pandas documentation and other resources\n\nLearning how to ask the right questions in a search engine like Google in order to find the solution to what you are trying to accomplish is the name of the game when you are just starting out with Python. Since Pandas is a popular and well documented Python package, you are bound to find myriads of resources that can help you get where you are going. \n\nA good first place to start when you are searching for answers with Pandas is to look at the Pandas documentation, which is fairly accessible to beginners, and is an incredible resource when you want to learn how to use a new command. It also offers a [User Guide](https://pandas.pydata.org/pandas-docs/stable/user_guide/index.html) for beginners with some fun exercises to deepen your learning. \n\nLet’s say you wanted to find out more about the .sort_values method we used in lesson 7 and understand the different parameters the method accepts:\n\n\n\n* You could first search for .sort_values on the Pandas documentation website ([https://pandas.pydata.org](https://pandas.pydata.org)) and navigate to the “[pandas.DataFrame.sort_values](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sort_values.html?highlight=sort_values#pandas-dataframe-sort-values)” documentation page.\n* Scroll through the page for the info, and look at the second section for examples of how to use the method and its various parameters. \n\n\n\n\n\n\n* If you don’t find an answer that makes sense to you on the Pandas documentation page, then look on Google for other resources. Some of our go-to websites for help are [Stack Overflow](https://stackoverflow.com/), [Geeks for Geeks](https://www.geeksforgeeks.org/), and [Data to Fish](https://datatofish.com/). \n\n### Other Resources\n\n\n\n* This workshop owes a huge debt to Melanie Walsh’s _[Introduction to Cultural Analytics & Python](https://melaniewalsh.github.io/Intro-Cultural-Analytics/welcome.html)_. This easy to use and understand textbook provides additional support for using Pandas. This is a great place to start if you want to continue building your Pandas skills. \n\n"
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3 (ipykernel)",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.10.9",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"gist": {
"id": "32d6975bb4fb21fb2d4679b0ce13cee3",
"data": {
"description": "Desktop/projects/pandas_workshop.ipynb",
"public": true
}
},
"_draft": {
"nbviewer_url": "https://gist.github.com/rskrisel/32d6975bb4fb21fb2d4679b0ce13cee3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment