Last active
April 2, 2021 17:24
-
-
Save PeterKjeldsen/99d814662de8bd25c2e579d672b3a0dd to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "<center>\n <img src=\"https://gitlab.com/ibm/skills-network/courses/placeholder101/-/raw/master/labs/module%201/images/IDSNlogo.png\" width=\"300\" alt=\"cognitiveclass.ai logo\" />\n</center>\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "# **Data Wrangling Lab**\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Estimated time needed: **45 to 60** minutes\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "In this assignment you will be performing data wrangling.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## Objectives\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "In this lab you will perform the following:\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "- Identify duplicate values in the dataset.\n\n- Remove duplicate values from the dataset.\n\n- Identify missing values in the dataset.\n\n- Impute the missing values in the dataset.\n\n- Normalize data in the dataset.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "<hr>\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## Hands on Lab\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Import pandas module.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "import pandas as pd", | |
"execution_count": 94, | |
"outputs": [] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Load the dataset into a dataframe.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df = pd.read_csv(\"https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBM-DA0321EN-SkillsNetwork/LargeData/m1_survey_data.csv\")", | |
"execution_count": 95, | |
"outputs": [] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df.shape[0] #How many rows", | |
"execution_count": 96, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 96, | |
"data": { | |
"text/plain": "11552" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df.shape[1] #How many columns", | |
"execution_count": 97, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 97, | |
"data": { | |
"text/plain": "85" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df.size", | |
"execution_count": 98, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 98, | |
"data": { | |
"text/plain": "981920" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## Finding duplicates\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "In this section you will identify duplicate values in the dataset.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": " Find how many duplicate rows exist in the dataframe.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "# your code goes here\nlen(df)-len(df.drop_duplicates())", | |
"execution_count": 99, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 99, | |
"data": { | |
"text/plain": "154" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "# In order to answer second question in test 1\nlen(df)-len(df.drop_duplicates('Respondent'))", | |
"execution_count": 100, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 100, | |
"data": { | |
"text/plain": "154" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## Removing duplicates\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Remove the duplicate rows from the dataframe.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "# your code goes here\ndf.drop_duplicates(keep ='first', inplace=True)", | |
"execution_count": 101, | |
"outputs": [] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Verify if duplicates were actually dropped.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "# your code goes here\nlen(df)-len(df.drop_duplicates())\ndf.size", | |
"execution_count": 102, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 102, | |
"data": { | |
"text/plain": "968830" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df.shape[0] #How many rows are in the DataFrame now?", | |
"execution_count": 103, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 103, | |
"data": { | |
"text/plain": "11398" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "len(df.drop_duplicates('Respondent'))", | |
"execution_count": 104, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 104, | |
"data": { | |
"text/plain": "11398" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "len(df.drop_duplicates('CompFreq'))", | |
"execution_count": 105, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 105, | |
"data": { | |
"text/plain": "4" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## Finding Missing values\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Find the missing values for all columns.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "# your code goes here\nmissing_values = df.isnull()\nmissing_values.head()", | |
"execution_count": 106, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 106, | |
"data": { | |
"text/plain": " Respondent MainBranch Hobbyist OpenSourcer OpenSource Employment \\\n0 False False False False False False \n1 False False False False False False \n2 False False False False False False \n3 False False False False False False \n4 False False False False False False \n\n Country Student EdLevel UndergradMajor ... WelcomeChange \\\n0 False False False False ... False \n1 False False False False ... False \n2 False False False False ... False \n3 False False False True ... False \n4 False False False False ... False \n\n SONewContent Age Gender Trans Sexuality Ethnicity Dependents \\\n0 False False False False False False False \n1 True False False False False False False \n2 False False False False False False False \n3 False False False False False False False \n4 False False False False False False False \n\n SurveyLength SurveyEase \n0 False False \n1 False False \n2 False False \n3 False False \n4 False False \n\n[5 rows x 85 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>Respondent</th>\n <th>MainBranch</th>\n <th>Hobbyist</th>\n <th>OpenSourcer</th>\n <th>OpenSource</th>\n <th>Employment</th>\n <th>Country</th>\n <th>Student</th>\n <th>EdLevel</th>\n <th>UndergradMajor</th>\n <th>...</th>\n <th>WelcomeChange</th>\n <th>SONewContent</th>\n <th>Age</th>\n <th>Gender</th>\n <th>Trans</th>\n <th>Sexuality</th>\n <th>Ethnicity</th>\n <th>Dependents</th>\n <th>SurveyLength</th>\n <th>SurveyEase</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>...</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n </tr>\n <tr>\n <th>1</th>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>...</td>\n <td>False</td>\n <td>True</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n </tr>\n <tr>\n <th>2</th>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>...</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n </tr>\n <tr>\n <th>3</th>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>True</td>\n <td>...</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n </tr>\n <tr>\n <th>4</th>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>...</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n <td>False</td>\n </tr>\n </tbody>\n</table>\n<p>5 rows \u00d7 85 columns</p>\n</div>" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Find out how many rows are missing in the column 'WorkLoc'\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "# your code goes here\ndf['WorkLoc'].isnull().sum()", | |
"execution_count": 107, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 107, | |
"data": { | |
"text/plain": "32" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df['EdLevel'].isnull().sum()", | |
"execution_count": 108, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 108, | |
"data": { | |
"text/plain": "112" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df['Country'].isnull().sum()", | |
"execution_count": 109, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 109, | |
"data": { | |
"text/plain": "0" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## Imputing missing values\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Find the value counts for the column WorkLoc.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "# your code goes here\ndf['WorkLoc'].value_counts()", | |
"execution_count": 110, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 110, | |
"data": { | |
"text/plain": "Office 6806\nHome 3589\nOther place, such as a coworking space or cafe 971\nName: WorkLoc, dtype: int64" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df['Employment'].value_counts()", | |
"execution_count": 111, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 111, | |
"data": { | |
"text/plain": "Employed full-time 10968\nEmployed part-time 430\nName: Employment, dtype: int64" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df['UndergradMajor'].value_counts()", | |
"execution_count": 112, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 112, | |
"data": { | |
"text/plain": "Computer science, computer engineering, or software engineering 6953\nInformation systems, information technology, or system administration 794\nAnother engineering discipline (ex. civil, electrical, mechanical) 759\nWeb development or web design 410\nA natural science (ex. biology, chemistry, physics) 403\nMathematics or statistics 372\nA business discipline (ex. accounting, finance, marketing) 244\nA social science (ex. anthropology, psychology, political science) 210\nA humanities discipline (ex. literature, history, philosophy) 207\nFine arts or performing arts (ex. graphic design, music, studio art) 161\nI never declared a major 124\nA health science (ex. nursing, pharmacy, radiology) 24\nName: UndergradMajor, dtype: int64" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Identify the value that is most frequent (majority) in the WorkLoc column.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "#make a note of the majority value here, for future reference\n#6806\ndf['WorkLoc'].value_counts().max()", | |
"execution_count": 113, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 113, | |
"data": { | |
"text/plain": "6806" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df['Employment'].value_counts().max()", | |
"execution_count": 114, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 114, | |
"data": { | |
"text/plain": "10968" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df['UndergradMajor'].value_counts().min()", | |
"execution_count": 115, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 115, | |
"data": { | |
"text/plain": "24" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Impute (replace) all the empty rows in the column WorkLoc with the value that you have identified as majority.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "# your code goes here\ndf['WorkLoc'].fillna('Office', inplace=True)", | |
"execution_count": 116, | |
"outputs": [] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "After imputation there should ideally not be any empty rows in the WorkLoc column.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Verify if imputing was successful.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "# your code goes here\ndf['WorkLoc'].isnull().sum()", | |
"execution_count": 117, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 117, | |
"data": { | |
"text/plain": "0" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## Normalizing data\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "There are two columns in the dataset that talk about compensation.\n\nOne is \"CompFreq\". This column shows how often a developer is paid (Yearly, Monthly, Weekly).\n\nThe other is \"CompTotal\". This column talks about how much the developer is paid per Year, Month, or Week depending upon his/her \"CompFreq\". \n\nThis makes it difficult to compare the total compensation of the developers.\n\nIn this section you will create a new column called 'NormalizedAnnualCompensation' which contains the 'Annual Compensation' irrespective of the 'CompFreq'.\n\nOnce this column is ready, it makes comparison of salaries easy.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "<hr>\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "List out the various categories in the column 'CompFreq'\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "# your code goes here\nCategories_In_CompFreq=list((df['CompFreq'].value_counts()).index)\nCategories_In_CompFreq", | |
"execution_count": 118, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 118, | |
"data": { | |
"text/plain": "['Yearly', 'Monthly', 'Weekly']" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Create a new column named 'NormalizedAnnualCompensation'. Use the hint given below if needed.\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Double click to see the **Hint**.\n\n<!--\n\nUse the below logic to arrive at the values for the column NormalizedAnnualCompensation.\n\nIf the CompFreq is Yearly then use the exising value in CompTotal\nIf the CompFreq is Monthly then multiply the value in CompTotal with 12 (months in an year)\nIf the CompFreq is Weekly then multiply the value in CompTotal with 52 (weeks in an year)\n\n-->\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "# your code goes here\ndf.loc[df['CompFreq'] =='Yearly', 'NormalizedAnnualCompensation']=df['CompTotal']\ndf.loc[df['CompFreq'] =='Monthly', 'NormalizedAnnualCompensation']=df['CompTotal']*12\ndf.loc[df['CompFreq'] =='Weekly', 'NormalizedAnnualCompensation']=df['CompTotal']*52\ndf[['CompFreq', 'CompTotal', 'NormalizedAnnualCompensation']].head()", | |
"execution_count": 125, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 125, | |
"data": { | |
"text/plain": " CompFreq CompTotal NormalizedAnnualCompensation\n0 Yearly 61000.0 61000.0\n1 Yearly 138000.0 138000.0\n2 Yearly 90000.0 90000.0\n3 Monthly 29000.0 348000.0\n4 Yearly 90000.0 90000.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>CompFreq</th>\n <th>CompTotal</th>\n <th>NormalizedAnnualCompensation</th>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th>0</th>\n <td>Yearly</td>\n <td>61000.0</td>\n <td>61000.0</td>\n </tr>\n <tr>\n <th>1</th>\n <td>Yearly</td>\n <td>138000.0</td>\n <td>138000.0</td>\n </tr>\n <tr>\n <th>2</th>\n <td>Yearly</td>\n <td>90000.0</td>\n <td>90000.0</td>\n </tr>\n <tr>\n <th>3</th>\n <td>Monthly</td>\n <td>29000.0</td>\n <td>348000.0</td>\n </tr>\n <tr>\n <th>4</th>\n <td>Yearly</td>\n <td>90000.0</td>\n <td>90000.0</td>\n </tr>\n </tbody>\n</table>\n</div>" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "len(df.drop_duplicates('CompFreq'))", | |
"execution_count": 120, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 120, | |
"data": { | |
"text/plain": "4" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df['CompFreq'].unique()", | |
"execution_count": 131, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 131, | |
"data": { | |
"text/plain": "array(['Yearly', 'Monthly', 'Weekly', nan], dtype=object)" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df['CompFreq'].value_counts()", | |
"execution_count": 132, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 132, | |
"data": { | |
"text/plain": "Yearly 6073\nMonthly 4788\nWeekly 331\nName: CompFreq, dtype: int64" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df['CompFreq'].describe()", | |
"execution_count": 133, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 133, | |
"data": { | |
"text/plain": "count 11192\nunique 3\ntop Yearly\nfreq 6073\nName: CompFreq, dtype: object" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df['NormalizedAnnualCompensation'].median()", | |
"execution_count": 134, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 134, | |
"data": { | |
"text/plain": "100000.0" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df[\"ConvertedComp\"].describe()", | |
"execution_count": 135, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 135, | |
"data": { | |
"text/plain": "count 1.058200e+04\nmean 1.315967e+05\nstd 2.947865e+05\nmin 0.000000e+00\n25% 2.686800e+04\n50% 5.774500e+04\n75% 1.000000e+05\nmax 2.000000e+06\nName: ConvertedComp, dtype: float64" | |
}, | |
"metadata": {} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "code", | |
"source": "df[\"ConvertedComp\"].hist(figsize=(15,4))", | |
"execution_count": 136, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"execution_count": 136, | |
"data": { | |
"text/plain": "<matplotlib.axes._subplots.AxesSubplot at 0x7f0c9a96b990>" | |
}, | |
"metadata": {} | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"text/plain": "<Figure size 1080x288 with 1 Axes>", | |
"image/png": "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\n" | |
}, | |
"metadata": { | |
"needs_background": "light" | |
} | |
} | |
] | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## Authors\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Ramesh Sannareddy\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "### Other Contributors\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "Rav Ahuja\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "## Change Log\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": "| Date (YYYY-MM-DD) | Version | Changed By | Change Description |\n| ----------------- | ------- | ----------------- | ---------------------------------- |\n| 2020-10-17 | 0.1 | Ramesh Sannareddy | Created initial version of the lab |\n" | |
}, | |
{ | |
"metadata": {}, | |
"cell_type": "markdown", | |
"source": " Copyright \u00a9 2020 IBM Corporation. This notebook and its source code are released under the terms of the [MIT License](https://cognitiveclass.ai/mit-license?cm_mmc=Email_Newsletter-_-Developer_Ed%2BTech-_-WW_WW-_-SkillsNetwork-Courses-IBM-DA0321EN-SkillsNetwork-21426264&cm_mmca1=000026UJ&cm_mmca2=10006555&cm_mmca3=M12345678&cvosrc=email.Newsletter.M12345678&cvo_campaign=000026UJ&cm_mmc=Email_Newsletter-_-Developer_Ed%2BTech-_-WW_WW-_-SkillsNetwork-Courses-IBM-DA0321EN-SkillsNetwork-21426264&cm_mmca1=000026UJ&cm_mmca2=10006555&cm_mmca3=M12345678&cvosrc=email.Newsletter.M12345678&cvo_campaign=000026UJ&cm_mmc=Email_Newsletter-_-Developer_Ed%2BTech-_-WW_WW-_-SkillsNetwork-Courses-IBM-DA0321EN-SkillsNetwork-21426264&cm_mmca1=000026UJ&cm_mmca2=10006555&cm_mmca3=M12345678&cvosrc=email.Newsletter.M12345678&cvo_campaign=000026UJ&cm_mmc=Email_Newsletter-_-Developer_Ed%2BTech-_-WW_WW-_-SkillsNetwork-Courses-IBM-DA0321EN-SkillsNetwork-21426264&cm_mmca1=000026UJ&cm_mmca2=10006555&cm_mmca3=M12345678&cvosrc=email.Newsletter.M12345678&cvo_campaign=000026UJ&cm_mmc=Email_Newsletter-_-Developer_Ed%2BTech-_-WW_WW-_-SkillsNetwork-Courses-IBM-DA0321EN-SkillsNetwork-21426264&cm_mmca1=000026UJ&cm_mmca2=10006555&cm_mmca3=M12345678&cvosrc=email.Newsletter.M12345678&cvo_campaign=000026UJ&cm_mmc=Email_Newsletter-_-Developer_Ed%2BTech-_-WW_WW-_-SkillsNetwork-Courses-IBM-DA0321EN-SkillsNetwork-21426264&cm_mmca1=000026UJ&cm_mmca2=10006555&cm_mmca3=M12345678&cvosrc=email.Newsletter.M12345678&cvo_campaign=000026UJ).\n" | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3.7", | |
"language": "python" | |
}, | |
"language_info": { | |
"name": "python", | |
"version": "3.7.10", | |
"mimetype": "text/x-python", | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"pygments_lexer": "ipython3", | |
"nbconvert_exporter": "python", | |
"file_extension": ".py" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment