datalife-2019/notebook.ipynb

1031 lines
46 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Habits"
]
},
{
"cell_type": "code",
"execution_count": 69,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import calendar\n",
"import matplotlib \n",
"import matplotlib.pyplot as plt"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {},
"outputs": [],
"source": [
"colNames = ['date', 'value']\n",
"meditateChecks = pd.read_csv('LoopHabits/002 Meditate/Checkmarks.csv', names=colNames, header=None)\n",
"meditateScore = pd.read_csv('LoopHabits/002 Meditate/Scores.csv', names=colNames, header=None)"
]
},
{
"cell_type": "code",
"execution_count": 79,
"metadata": {},
"outputs": [
{
"data": {
"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>date</th>\n",
" <th>Meditate</th>\n",
" <th>Exercise</th>\n",
" <th>Read</th>\n",
" <th>Journal</th>\n",
" <th>devlog</th>\n",
" <th>Plants</th>\n",
" <th>Draw</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2020-01-17</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2020-01-16</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2020-01-15</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2020-01-14</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2020-01-13</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>2020-01-12</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>2020-01-11</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>2020-01-10</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>2020-01-09</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>2020-01-08</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>2020-01-07</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>2020-01-06</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>2020-01-05</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>2020-01-04</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>2020-01-03</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>2020-01-02</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>2020-01-01</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>2019-12-31</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>2019-12-30</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>2019-12-29</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>2019-12-28</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>2019-12-27</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>2019-12-26</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>2019-12-25</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>2019-12-24</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>2019-12-23</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>2019-12-22</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>2019-12-21</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>2019-12-20</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>2019-12-19</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</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",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>717</th>\n",
" <td>2018-01-30</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>718</th>\n",
" <td>2018-01-29</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>719</th>\n",
" <td>2018-01-28</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>720</th>\n",
" <td>2018-01-27</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>721</th>\n",
" <td>2018-01-26</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>722</th>\n",
" <td>2018-01-25</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>723</th>\n",
" <td>2018-01-24</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>724</th>\n",
" <td>2018-01-23</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>725</th>\n",
" <td>2018-01-22</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>726</th>\n",
" <td>2018-01-21</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>727</th>\n",
" <td>2018-01-20</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>728</th>\n",
" <td>2018-01-19</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>729</th>\n",
" <td>2018-01-18</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>730</th>\n",
" <td>2018-01-17</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>731</th>\n",
" <td>2018-01-16</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>732</th>\n",
" <td>2018-01-15</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>733</th>\n",
" <td>2018-01-14</td>\n",
" <td>1</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>734</th>\n",
" <td>2018-01-13</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>735</th>\n",
" <td>2018-01-12</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>736</th>\n",
" <td>2018-01-11</td>\n",
" <td>2</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>737</th>\n",
" <td>2018-01-10</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>738</th>\n",
" <td>2018-01-09</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>739</th>\n",
" <td>2018-01-08</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>740</th>\n",
" <td>2018-01-07</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>741</th>\n",
" <td>2018-01-06</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>742</th>\n",
" <td>2018-01-05</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>743</th>\n",
" <td>2018-01-04</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>744</th>\n",
" <td>2018-01-03</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>745</th>\n",
" <td>2018-01-02</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>746</th>\n",
" <td>2018-01-01</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>747 rows × 8 columns</p>\n",
"</div>"
],
"text/plain": [
" date Meditate Exercise Read Journal devlog Plants Draw\n",
"0 2020-01-17 2 2 0 1 0 0 0\n",
"1 2020-01-16 0 0 0 1 0 0 0\n",
"2 2020-01-15 0 0 0 1 0 0 0\n",
"3 2020-01-14 2 1 1 1 0 0 0\n",
"4 2020-01-13 0 1 2 2 0 0 0\n",
"5 2020-01-12 0 1 2 0 0 0 0\n",
"6 2020-01-11 0 1 1 0 0 0 0\n",
"7 2020-01-10 0 2 2 0 0 0 0\n",
"8 2020-01-09 0 2 0 0 0 0 0\n",
"9 2020-01-08 1 2 1 1 0 0 0\n",
"10 2020-01-07 2 2 2 1 0 0 0\n",
"11 2020-01-06 0 0 2 1 0 0 0\n",
"12 2020-01-05 2 0 0 1 0 0 0\n",
"13 2020-01-04 0 2 0 1 0 0 0\n",
"14 2020-01-03 0 0 0 1 0 0 0\n",
"15 2020-01-02 0 0 0 2 0 0 0\n",
"16 2020-01-01 0 0 0 0 0 0 0\n",
"17 2019-12-31 0 0 0 0 0 0 0\n",
"18 2019-12-30 0 1 0 0 0 0 0\n",
"19 2019-12-29 0 2 1 0 0 0 0\n",
"20 2019-12-28 0 0 2 0 0 0 0\n",
"21 2019-12-27 0 2 2 0 1 0 0\n",
"22 2019-12-26 0 1 0 1 1 0 0\n",
"23 2019-12-25 0 1 0 1 1 0 0\n",
"24 2019-12-24 2 2 0 1 1 0 0\n",
"25 2019-12-23 1 0 0 1 1 0 0\n",
"26 2019-12-22 1 0 0 1 1 0 0\n",
"27 2019-12-21 2 2 0 1 2 0 0\n",
"28 2019-12-20 2 2 1 2 0 0 0\n",
"29 2019-12-19 0 0 2 1 0 0 0\n",
".. ... ... ... ... ... ... ... ...\n",
"717 2018-01-30 2 0 0 2 0 0 0\n",
"718 2018-01-29 0 0 0 2 0 0 0\n",
"719 2018-01-28 0 1 0 1 0 0 0\n",
"720 2018-01-27 0 1 0 1 0 0 0\n",
"721 2018-01-26 0 2 0 1 0 0 0\n",
"722 2018-01-25 1 0 0 2 0 0 0\n",
"723 2018-01-24 1 1 0 1 0 0 0\n",
"724 2018-01-23 2 2 0 2 0 0 0\n",
"725 2018-01-22 2 2 0 2 0 0 0\n",
"726 2018-01-21 0 1 0 0 0 0 0\n",
"727 2018-01-20 0 1 0 0 0 0 0\n",
"728 2018-01-19 0 1 0 0 0 0 0\n",
"729 2018-01-18 0 2 0 1 0 0 0\n",
"730 2018-01-17 2 2 0 1 0 0 0\n",
"731 2018-01-16 0 1 0 1 0 0 0\n",
"732 2018-01-15 0 2 0 1 0 0 0\n",
"733 2018-01-14 1 2 0 1 0 0 0\n",
"734 2018-01-13 1 1 0 1 0 0 0\n",
"735 2018-01-12 2 1 0 2 0 0 0\n",
"736 2018-01-11 2 1 0 0 0 0 0\n",
"737 2018-01-10 0 2 0 0 0 0 0\n",
"738 2018-01-09 0 1 0 0 0 0 0\n",
"739 2018-01-08 0 2 0 0 0 0 0\n",
"740 2018-01-07 0 2 0 0 0 0 0\n",
"741 2018-01-06 0 1 0 0 0 0 0\n",
"742 2018-01-05 0 2 0 0 0 0 0\n",
"743 2018-01-04 0 0 0 0 0 0 0\n",
"744 2018-01-03 0 0 0 0 0 0 0\n",
"745 2018-01-02 2 2 0 0 0 0 0\n",
"746 2018-01-01 0 2 0 0 0 0 0\n",
"\n",
"[747 rows x 8 columns]"
]
},
"execution_count": 79,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#colNames = ['date', 'Godmode', 'Meditate', 'Exercise', 'Piano','Read', 'Journal', 'Gratitude', 'devlog','Plants', 'Job', 'Draw']\n",
"checks = pd.read_csv('LoopHabits/Checkmarks.csv', header=0)\n",
"checks = checks.drop(['Godmode', 'Piano', 'Gratitude', 'Job'], axis=1)\n",
"checks"
]
},
{
"cell_type": "code",
"execution_count": 80,
"metadata": {},
"outputs": [
{
"ename": "IndentationError",
"evalue": "expected an indented block (<ipython-input-80-9f6f54af3f2a>, line 19)",
"output_type": "error",
"traceback": [
"\u001b[0;36m File \u001b[0;32m\"<ipython-input-80-9f6f54af3f2a>\"\u001b[0;36m, line \u001b[0;32m19\u001b[0m\n\u001b[0;31m diffStreak = pd.concat([pd.Series([0]) , df[::-1].value, pd.Series([0])]).diff().tolist()\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mIndentationError\u001b[0m\u001b[0;31m:\u001b[0m expected an indented block\n"
]
}
],
"source": [
"def only2019(df):\n",
" df['drop'] = df['date'].apply(lambda x: 0 if x[0:4] == '2019' else 1)\n",
" df = df.drop(df[df['drop'] == 1].index)\n",
" df = df.drop(columns=['drop'])\n",
" return df\n",
"\n",
"def MarchOnwards(df):\n",
" # For habits only, lost my phone in late Febuary, didn't have a recent backup\n",
" df['drop'] = df['date'].apply(lambda x: 1 if x[5:7] == '01' or x[5:7] == '02' else 0)\n",
" df = df.drop(df[df['drop'] == 1].index)\n",
" df = df.drop(columns=['drop'])\n",
" return df\n",
"\n",
"def longestZero(df):\n",
" # reverse the series so dates are ascending (increasing?)\n",
" # pad out the series with 0s, then diff it to track total, use that total to calculate highest streak\n",
" # streak increases when sum is 0\n",
" diffStreak = pd.concat([pd.Series([0]) , df[::-1].value, pd.Series([0])]).diff().tolist()\n",
" runningSum = 0\n",
" streak = 0\n",
" streakList = []\n",
" for e in diffStreak[1:-1]:\n",
" runningSum += e\n",
" if runningSum == 0:\n",
" streak += 1\n",
" else:\n",
" streakList.append(streak)\n",
" streak = 0\n",
" return max(streakList)\n",
"\n",
"def longestStreak(df):\n",
" # reverse the series so dates are ascending (increasing?)\n",
" # pad out the series with 0s, then diff it to track total, use that total to calculate highest streak\n",
" # streak increases when sum is non-zero\n",
" diffStreak = pd.concat([pd.Series([0]) , df[::-1].value, pd.Series([0])]).diff().tolist()\n",
" runningSum = 0\n",
" streak = 0\n",
" streakList = []\n",
" for e in diffStreak[1:-1]:\n",
" runningSum += e\n",
" if runningSum != 0:\n",
" streak += 1\n",
" else:\n",
" streakList.append(streak)\n",
" streak = 0\n",
" return max(streakList)\n",
"\n",
"def sumMonth(df):\n",
" df['month'] = pd.DatetimeIndex(df['date']).month\n",
" return df.groupby(['month']).sum()\n",
"\n",
"def meanMonth(df):\n",
" df['month'] = pd.DatetimeIndex(df['date']).month\n",
" return df.groupby(['month']).mean()\n",
"\n",
"def plotScore(df):\n",
" df = meanMonth(df)\n",
" plt.plot(df)\n",
" plt.show()\n",
"\n",
"def countZeros(df):\n",
" return countValue(0, df)\n",
"\n",
"def countValue(countValue, df):\n",
" return (df.value == countValue).astype(int).sum()\n"
]
},
{
"cell_type": "code",
"execution_count": 72,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Days done: 72\n",
"Non-streak days: 195\n",
"Streak days: 39\n",
"Longest streak: 17\n",
"Longest zeros: 23\n",
"Best month: September\n",
"Worst month: April\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"df = MarchOnwards(only2019(meditateChecks))\n",
"print(\"Days done: \" + str(countValue(2, df)))\n",
"print(\"Non-streak days: \" + str(countZeros(df)))\n",
"print(\"Streak days: \" + str(countValue(1, df)))\n",
"print(\"Longest streak: \" + str(longestStreak(df)))\n",
"print(\"Longest zeros: \" + str(longestZero(df)))\n",
"print(\"Best month: \" + calendar.month_name[int(sumMonth(df).idxmax())])\n",
"print(\"Worst month: \" + calendar.month_name[int(sumMonth(df).idxmin())])\n",
"plotScore(df)"
]
},
{
"cell_type": "code",
"execution_count": 71,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"306\n"
]
},
{
"data": {
"text/plain": [
"299"
]
},
"execution_count": 71,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Total days for habits: 306\n",
"# How come when counting streaks I only get 299?\n",
"# missing 1 week??\n",
"print(72 + 195 + 39)\n",
"longestStreak(onlyMarch(only2019(meditateChecks))) + longestZero(onlyMarch(only2019(meditateChecks)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Why don't the above two numbers match??"
]
},
{
"cell_type": "code",
"execution_count": 81,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Index(['date', 'value', 'month'], dtype='object')"
]
},
"execution_count": 81,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.keys()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"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.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}