-
Notifications
You must be signed in to change notification settings - Fork 2
/
.ipynb
166 lines (166 loc) · 5.09 KB
/
.ipynb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Mentoría 'de cómo clasificar en géneros a las canciones'\n",
"## Práctico I : Análisis de features de audio"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Consideraciones:**\n",
"- Se evalúa el estilo y prolijidad del código.\n",
"- Se permite hacer trabajo extra si su pregunta lo requiere, siempre y cuando las actividades básicas estén resueltas."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Librerías"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"!pip3 install spotipy\n",
"!pip3 install pandas\n",
"\n",
"# Agregar las librerías extra que se utilicen en esta celda y la siguiente"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Dependencias y acceso al API"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"import spotipy\n",
"from spotipy.oauth2 import SpotifyClientCredentials\n",
"\n",
"client_id = '46b333d567314a89a6254b6c6b054be6'\n",
"client_secret = '9d922c3613e441518349dcf55f7d5853'\n",
"client_credentials_manager = SpotifyClientCredentials(client_id=client_id, client_secret=client_secret)\n",
"\n",
"sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 1) Plantear una pregunta que quieran responder con estos datos\n",
"\n",
"Las preguntas pueden ser por ejemplo: \n",
"- ¿Por qué este artista destaca dentro de su género?\n",
"- ¿Por qué no lo hace?\n",
"- ¿Por qué un género musical es más escuchado que otro?\n",
"\n",
"Sin embargo, pueden usar cualquier afirmación que hayan leído en internet y que se pueda responder con los datos este trabajo para validarla o rechazarla."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 2) Obtener datos para responder la pregunta\n",
"\n",
"Para esto hay que hacer pedidos a la API para obtener una lista de canciones de sus artistas, de las cuáles se obtienen sus features de audio como en este [ejemplo](https://developer.spotify.com/console/get-audio-features-track/?id=17VP4tofJ3evJbtY8Tk1Qi) de la versión web de la API. Una vez obtenidos los datos, seleccionar un subconjunto de 5 o 6 features de audio y agrupar los datos en un [DataFrame de pandas](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.html).\n",
"\n",
"**Recomendación** : Usar un dataframe para su artista y otro para la competencia si es que eligierone esa opción, les va a ahorrar tiempo.\n",
"\n",
"**Aclaración** : Si plantearon una pregunta que no requiera los datos de la consigna, obtengan esos datos."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 3) Hacer un gráfico de estilo [radar chart](https://en.wikipedia.org/wiki/Radar_chart) comparando a su artista o banda con 'la competencia'\n",
"En esta parte tienen que hacer los gráficos tomando como parámetros las features de audio que eligieron. Pueden usar la librería que quieran para hacer los gráficos.\n",
"\n",
"**Recomendaciones** : \n",
"- Hacer ambos gráficos en una misma figura.\n",
"- Antes de graficar, obtener los valores medios o medianos para los valores de las features. \n",
"- Chequear los rangos de valores para cada feature antes de hacer los gráficos.\n",
"\n",
"**Aclaración**: pueden usar otro tipo de gráfico si lo consideran particularmente útil para resolver su pregunta."
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### 4) Escribir un informe"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Este informe tiene que describir qué datos que obtuvieron, el volumen de estos (# de canciones del artista, # de canciones de la competencia, etc), una explicación de cómo estos se relacionan con la pregunta planteada, cómo ayudan a responderla y los resultados que obtuvieron. Usar la celda de abajo con formato markdown."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
}
],
"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.9"
}
},
"nbformat": 4,
"nbformat_minor": 2
}