Data Analysis with Python: Zero to Pandas - Course Project Guidelines
(remove this cell before submission)
This is the starter notebook for the course project for Data Analysis with Python: Zero to Pandas. You will pick a real-world dataset of your choice and apply the concepts learned in this course to perform exploratory data analysis. Use this starter notebook as an outline for your project . Focus on documentation and presentation - this Jupyter notebook will also serve as a project report, so make sure to include detailed explanations wherever possible using Markdown cells.
This is an executable Jupyter notebook. Click the Open in Colab button at the top of this page to execute the code. Then, click the "Copy to Drive" button in the Google Colab toolbar to save a copy of the notebook in your Google Drive.
Evaluation Criteria
Your submission will be evaluated using the following criteria:
- Dataset must contain at least 3 columns and 150 rows of data
- You must ask and answer at least 5 questions about the dataset
- Your submission must include at least 5 visualizations (graphs)
- Your submission must include explanations using markdown cells, apart from the code.
- Your work must not be plagiarized i.e. copy-pasted for somewhere else.
Follow this step-by-step guide to work on your project.
Step 1: Select a real-world dataset
- Find an interesting dataset on this page: https://www.kaggle.com/datasets?fileType=csv
- The data should be in CSV format, and should contain at least 3 columns and 150 rows
- Download the dataset using the
opendatasetsPython library
Here's some sample code for downloading the US Elections Dataset:
import opendatasets as od
dataset_url = 'https://www.kaggle.com/tunguz/us-elections-dataset'
od.download('https://www.kaggle.com/tunguz/us-elections-dataset')
Step 2: Perform data preparation & cleaning
- Load the dataset into a data frame using Pandas
- Explore the number of rows & columns, ranges of values etc.
- Handle missing, incorrect and invalid data
- Perform any additional steps (parsing dates, creating additional columns, merging multiple dataset etc.)
Step 3: Perform exploratory analysis & visualization
- Compute the mean, sum, range and other interesting statistics for numeric columns
- Explore distributions of numeric columns using histograms etc.
- Explore relationship between columns using scatter plots, bar charts etc.
- Make a note of interesting insights from the exploratory analysis
Step 4: Ask & answer questions about the data
- Ask at least 5 interesting questions about your dataset
- Answer the questions either by computing the results using Numpy/Pandas or by plotting graphs using Matplotlib/Seaborn
- Create new columns, merge multiple dataset and perform grouping/aggregation wherever necessary
- Wherever you're using a library function from Pandas/Numpy/Matplotlib etc. explain briefly what it does
Step 5: Summarize your inferences & write a conclusion
- Write a summary of what you've learned from the analysis
- Include interesting insights and graphs from previous sections
- Share ideas for future work on the same topic using other relevant datasets
- Share links to resources you found useful during your analysis
Step 6: Make a submission & share your work
- To save your work, select "File" > "Save a Copy in Drive" on Google Colab. Once the copy is created, click the "Share" button and select "Anyone with the link" under the "General Access" section to make this notebook publicly accessible.
- Go to the submission page and submit a link to your colab notebook.
- Link of submission page: https://jovian.com/learn/data-analysis-with-python-zero-to-pandas/assignment/course-project
(Optional) Step 7: Write a blog post
- A blog post is a great way to present and showcase your work.
- Sign up on Medium.com to write a blog post for your project.
- Copy over the explanations from your Jupyter notebook into your blog post, and embed code cells & outputs
- Check out the Jovian.ml Medium publication for inspiration: https://medium.com/jovianml
Example Projects
Refer to these projects for inspiration:
-
Analyzing your browser history using Pandas & Seaborn by Kartik Godawat
-
Understanding the Gender Divide in Data Science Roles by Aakanksha N S
NOTE: Remove this cell containing the instructions before making your submission. You can do using the "Edit > Delete Cells" menu option.
Project Title - change this
TODO - Write some introduction about your project here: describe the dataset, where you got it from, what you're trying to do with it, and which tools & techniques you're using. You can also mention about the course Data Analysis with Python: Zero to Pandas, and what you've learned from it.
!pip install opendatasets --upgrade --quietLet's begin by downloading the data, and listing the files within the dataset.
# Change this
dataset_url = 'https://www.kaggle.com/tunguz/us-elections-dataset' import opendatasets as od
od.download(dataset_url)Kaggle dataset ID: tunguz/us-elections-dataset
0it [00:00, ?it/s]Downloading https://www.kaggle.com/tunguz/us-elections-dataset/download?resource=download&downloadHash=7ba6986e70e4d0e9f17ef767bfef5a5fc294114a206832fd436474dafb200649 to ./us-elections-dataset.zip
37806080it [00:03, 12417556.13it/s]
Extracting archive ./us-elections-dataset.zip to ./us-elections-dataset
The dataset has been downloaded and extracted.
# Change this
data_dir = './us-elections-dataset'import os
os.listdir(data_dir)['2016-precinct-house.csv',
'1976-2018-house2.csv',
'president-1976-2016.csv',
'1976-2018-senate.csv',
'2016-precinct-president.csv',
'us-2016-primary-results.csv',
'2016-precinct-senate.csv',
'2012_US_elect_county.csv',
'usa-2016-presidential-election-by-county.csv']Data Preparation and Cleaning
TODO - Write some explanation here.
Instructions (delete this cell):
- Load the dataset into a data frame using Pandas
- Explore the number of rows & columns, ranges of values etc.
- Handle missing, incorrect and invalid data
- Perform any additional steps (parsing dates, creating additional columns, merging multiple dataset etc.)
Exploratory Analysis and Visualization
TODO - write some explanation here.
Instructions (delete this cell)
- Compute the mean, sum, range and other interesting statistics for numeric columns
- Explore distributions of numeric columns using histograms etc.
- Explore relationship between columns using scatter plots, bar charts etc.
- Make a note of interesting insights from the exploratory analysis
Let's begin by importingmatplotlib.pyplot and seaborn.
import seaborn as sns
import matplotlib
import matplotlib.pyplot as plt
%matplotlib inline
sns.set_style('darkgrid')
matplotlib.rcParams['font.size'] = 14
matplotlib.rcParams['figure.figsize'] = (9, 5)
matplotlib.rcParams['figure.facecolor'] = '#00000000'TODO - Explore one or more columns by plotting a graph below, and add some explanation about it
TODO - Explore one or more columns by plotting a graph below, and add some explanation about it
TODO - Explore one or more columns by plotting a graph below, and add some explanation about it
TODO - Explore one or more columns by plotting a graph below, and add some explanation about it
TODO - Explore one or more columns by plotting a graph below, and add some explanation about it
Asking and Answering Questions
TODO - write some explanation here.
Instructions (delete this cell)
- Ask at least 5 interesting questions about your dataset
- Answer the questions either by computing the results using Numpy/Pandas or by plotting graphs using Matplotlib/Seaborn
- Create new columns, merge multiple dataset and perform grouping/aggregation wherever necessary
- Wherever you're using a library function from Pandas/Numpy/Matplotlib etc. explain briefly what it does
Inferences and Conclusion
TODO - Write some explanation here: a summary of all the inferences drawn from the analysis, and any conclusions you may have drawn by answering various questions.
References and Future Work
TODO - Write some explanation here: ideas for future projects using this dataset, and links to resources you found useful.
Submission Instructions (delete this cell)
To save your work, select "File" > "Save a Copy in Drive" on Google Colab. Once the copy is created, click the "Share" button and select "Anyone with the link" under the "General Access" section to make this notebook publicly accessible.
![]()
Then, copy the notebook link and submit it on the assignment page.
(Optional) Write a blog post
- A blog post is a great way to present and showcase your work.
- Sign up on Medium.com to write a blog post for your project.
- Copy over the explanations from your Jupyter notebook into your blog post, and embed code cells & outputs
- Check out the Jovian.ml Medium publication for inspiration: https://medium.com/jovianml