{ "metadata": { "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.8.4-final" }, "orig_nbformat": 2, "kernelspec": { "name": "python3", "display_name": "Python 3.8.4 64-bit ('listening-analysis-_rwRS6J3-py3.8': venv)", "metadata": { "interpreter": { "hash": "e85d407c5e6377acc22c75bda570bea5002f956bfcfcd37c4bd67d7795879c64" } } } }, "nbformat": 4, "nbformat_minor": 2, "cells": [ { "source": [ "# Stats\n", "\n", "Some easy numbers about habits" ], "cell_type": "markdown", "metadata": {} }, { "source": [ "# % of scrobbles with attached URIs" ], "cell_type": "markdown", "metadata": {} }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "output_type": "stream", "name": "stdout", "text": [ "94.67%\n" ] }, { "output_type": "display_data", "data": { "text/plain": "
", "image/svg+xml": "\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n 2021-01-31T21:11:06.218715\r\n image/svg+xml\r\n \r\n \r\n Matplotlib v3.3.4, https://matplotlib.org/\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n", "image/png": "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\n" }, "metadata": {} } ], "source": [ "no_uri = (\n", " 'SELECT ' \n", " ' COUNT(track) '\n", " 'FROM `sarsooxyz.scrobbles.*` '\n", " 'WHERE '\n", " ' uri IS NOT NULL '\n", ")\n", "\n", "uri = (\n", " 'SELECT ' \n", " ' COUNT(track) '\n", " 'FROM `sarsooxyz.scrobbles.*` '\n", ")\n", "\n", "no_uri_count = list(client.query(no_uri).result())[0][0]\n", "uri_count = list(client.query(uri).result())[0][0]\n", "\n", "print(f'{( no_uri_count / uri_count ) * 100:.2f}% joined tracks')\n", "plt.pie([no_uri_count, uri_count - no_uri_count], labels=[\"No URI\", \"Attached URI\"])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [], "source": [ "from google.cloud import bigquery\n", "import matplotlib.pyplot as plt\n", "\n", "client = bigquery.Client()" ] } ] }