### ![](https://ga-dash.s3.amazonaws.com/production/assets/logo-9f88ae6c9c3871690e33280fcf557f33.png) Python Programming: Pandas Project

<!---
This assignment was developed by Brandi Butler for Python 5-Day

Questions? Comments?
1. Log an issue to this repo to alert me of a problem.
2. Suggest an edit yourself by forking this repo, making edits, and submitting a pull request with your changes back to our master branch.
3. Hit me up on Slack at @brandib.
--->

# Final Project

First off, let's take a second to congratulate you for making it this far! We know we've packed a lot of knowledge into a relatively short time! Kudos for rocking it!

![](https://media.giphy.com/media/OcZp0maz6ALok/giphy.gif)

---

## Prompt

We'd like you to have something tangible to show for having taken this course with us, so let's use your newly acquired Pandas skills to make a data-pulling app!

#### Got Ideas?

You are free to make a website about anything you'd like, as long as it meets all the requirements listed below. If you're having trouble coming up with a topic, consider:

* Finding a fun data set and basing it on that.
* Making an app that contrasts data from your hobbies.
* Making something you think would improve your life in some way.

Feel free to share resources and inspiration with your classmates!

---

## Deliverables

You must have a Pandas app in Jupyter Notebooks. You will work individually on this project, but feel free to share inspiration, resources, or cool data sets that you find with your classmates!

### Requirements

Your assignment **must** include:

1. Data pulled from at least one data set.
   - Get creative! Tons of free data sets exist! Ask your instructor or classmates for ideas.
2. Data displayed in a minimum of two different visualizations.
    - Take care that they're the best choice of visualizations for the data and are easy to comprehend.
3. Cleaning the data — handling of NULL values or other potential errors in the data.
4. Core Python topics. At minimum:
      - Dictionaries *or* sets *or* tuples.
      - Basic debugging, such as a `try-except` block *(only if necessary)*.
      - User input *or* reading from a file.
5. Comments, so another developer can easily see what your app does.


### Resources

#### Suggested Ways to Get Started

* **Begin with the end in mind.** Know where you want to go by planning ahead, so you don't waste time building things you don't need.
* **Read the docs** for whatever technologies or data sets you use. Most of the time, there is a tutorial that you can follow! This isn't always the case, however, learning to read documentation is crucial to your success as a developer.
* **Write pseudocode before you write actual code.** Thinking through the logic of something helps.

#### Additional Resources

- An [extremely helpful debugging flowchart](https://www.dropbox.com/s/cqsxfws52gulkyx/drawing.pdf).
- The [Python Docs](https://docs.python.org).
- [Keyword `args`](http://treyhunner.com/2018/04/keyword-arguments-in-python/).
- [`args` and `kwargs`](https://www.digitalocean.com/community/tutorials/how-to-use-args-and-kwargs-in-python-3).
- [`chain` and Other `itertools`](http://programeveryday.com/post/using-python-itertools-to-save-memory/).
- [Sets on a Python Tutorial Website](https://www.learnpython.org/en/Sets)).
- [Tuples](http://openbookproject.net/thinkcs/python/english3e/tuples.html).


---

## Evaluation

Your project will be evaluated based on the rubric below.

### Rubric

| Score | Expectations |
| ----- | ---------------------------------------------------- |
| 0 | Incomplete. |
| 1 | Does not meet expectations. |
| 2 | Meets expectations, good job! |
| 3 | Exceeds expectations, you wonderful creature, you! |


A zero-to-three grading scale may not intuitively make sense, so here is an example using the criteria as if your assignment were to cook a pizza:

Criteria | **0** Incomplete. | **1** Does not meet expectations. | **2** Meets expectations. | **3**  Exceeds expectations. |
:--- | :--- | :--- | :--- | :---
Crust | No crust present. Submission is just cheese and sauce on a plate. | Pizza has a crust, but it is raw. | Crust is cooked thoroughly.| Crust is golden brown and just thin enough without being too thick.
Cheese | No cheese present. | Cheese is made of soy. | Cheese covers the pizza from edge to edge. | Cheese is delicious, plentiful, and melted to perfection.
