{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Nutridrive analysis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Intro\n", "- Python is a very popular programming language\n", "- There are a lot of libraries (e.g., think of them as plugins for a language)\n", "- The main plugin you will use is called [Pandas](https://pandas.pydata.org/)\n", "- It was [invented by someone working in Capital Management](https://en.wikipedia.org/wiki/Pandas_(software)#History)\n", "- [Run through a super fast 10 min tutorial first](https://pandas.pydata.org/docs/user_guide/10min.html)\n", "- [Get some inspiration for Optimization problems here](https://www.youtube.com/watch?v=ufYtueq2DCw)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Let's get started \n", "\n", "- below are some \"cells\"\n", "- each cell is a \"piece of code\"\n", "- click a cell to go to it (better start with the first one below 👇, it imports things..)\n", "- hit SHIFT+ENTER to execute a cell " ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# we import pandas <- this is a comment \n", "import pandas as pd # <- this is code \n", "import matplotlib.pyplot as plt\n", "\n", "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# load data into pandas dataframe \n", "df = pd.read_csv(\"data/data.csv\", delimiter=\";\")" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
IDMealRestaurantTypeCalPCFLike TriggerReg...Unnamed: 17Unnamed: 18Unnamed: 19Unnamed: 20Unnamed: 21Unnamed: 22Unnamed: 23Unnamed: 24Unnamed: 25Unnamed: 26
01.0Protein BoxChilangoLunch / Dinner4805016201.01.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
12.0Rice Hot Box + chickenChilangoLunch / Dinner49539,961,110,71.01.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
23.0Chicken & Black Beans BurritoChilangoLunch / Dinner6064173381.01.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
34.0Naked Burrito (grilled chicken & guac)ChilangoLunch / Dinner4753435221.01.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
45.0Super Eggs + Smoked SalmonPureBreakfast27924,41,819,21.01.0...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", "

5 rows × 27 columns

\n", "
" ], "text/plain": [ " ID Meal Restaurant Type \\\n", "0 1.0 Protein Box Chilango Lunch / Dinner \n", "1 2.0 Rice Hot Box + chicken Chilango Lunch / Dinner \n", "2 3.0 Chicken & Black Beans Burrito Chilango Lunch / Dinner \n", "3 4.0 Naked Burrito (grilled chicken & guac) Chilango Lunch / Dinner \n", "4 5.0 Super Eggs + Smoked Salmon Pure Breakfast \n", "\n", " Cal P C F Like Trigger Reg ... Unnamed: 17 Unnamed: 18 \\\n", "0 480 50 16 20 1.0 1.0 ... NaN NaN \n", "1 495 39,9 61,1 10,7 1.0 1.0 ... NaN NaN \n", "2 606 41 73 38 1.0 1.0 ... NaN NaN \n", "3 475 34 35 22 1.0 1.0 ... NaN NaN \n", "4 279 24,4 1,8 19,2 1.0 1.0 ... NaN NaN \n", "\n", " Unnamed: 19 Unnamed: 20 Unnamed: 21 Unnamed: 22 Unnamed: 23 Unnamed: 24 \\\n", "0 NaN NaN NaN NaN NaN NaN \n", "1 NaN NaN NaN NaN NaN NaN \n", "2 NaN NaN NaN NaN NaN NaN \n", "3 NaN NaN NaN NaN NaN NaN \n", "4 NaN NaN NaN NaN NaN NaN \n", "\n", " Unnamed: 25 Unnamed: 26 \n", "0 NaN NaN \n", "1 NaN NaN \n", "2 NaN NaN \n", "3 NaN NaN \n", "4 NaN NaN \n", "\n", "[5 rows x 27 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# look at head of the data \n", "df.head()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1.0 192\n", "0.0 1\n", "Name: Like Trigger, dtype: int64" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# count the occurences of like trigger column\n", "df[\"Like Trigger\"].value_counts()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plot a historgram of restaurants\n", "df.Restaurant.hist()" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "# ... sky is the limit\n", "\n", "# Some next steps: \n", "# -> clean up the data there are some columns/rows with nans\n", "# -> plot some easy statistics \n", "# -> can we make an optimization program?" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3.10.2 ('.env': venv)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.2" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "fff2bf465239b98ccbc0bc36644a64fec413b7729ff9f845613b11f348162f52" } } }, "nbformat": 4, "nbformat_minor": 2 }