diff --git a/notebook/problems.es.ipynb b/notebook/problems.es.ipynb
index 9c5380c0..bcbcb807 100644
--- a/notebook/problems.es.ipynb
+++ b/notebook/problems.es.ipynb
@@ -20,7 +20,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 4,
"id": "ca3d2c0a",
"metadata": {},
"outputs": [
@@ -201,7 +201,7 @@
"[979 rows x 6 columns]"
]
},
- "execution_count": 3,
+ "execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
@@ -221,62 +221,358 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 5,
"id": "61d39304",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "star_rating float64\n",
+ "title str\n",
+ "content_rating str\n",
+ "genre str\n",
+ "duration int64\n",
+ "actors_list str\n",
+ "title_length int64\n",
+ "dtype: object\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " star_rating | \n",
+ " title | \n",
+ " content_rating | \n",
+ " genre | \n",
+ " duration | \n",
+ " actors_list | \n",
+ " title_length | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 9.3 | \n",
+ " The Shawshank Redemption | \n",
+ " R | \n",
+ " Crime | \n",
+ " 142 | \n",
+ " [u'Tim Robbins', u'Morgan Freeman', u'Bob Gunt... | \n",
+ " 24 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 9.2 | \n",
+ " The Godfather | \n",
+ " R | \n",
+ " Crime | \n",
+ " 175 | \n",
+ " [u'Marlon Brando', u'Al Pacino', u'James Caan'] | \n",
+ " 13 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 9.1 | \n",
+ " The Godfather: Part II | \n",
+ " R | \n",
+ " Crime | \n",
+ " 200 | \n",
+ " [u'Al Pacino', u'Robert De Niro', u'Robert Duv... | \n",
+ " 22 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 9.0 | \n",
+ " The Dark Knight | \n",
+ " PG-13 | \n",
+ " Action | \n",
+ " 152 | \n",
+ " [u'Christian Bale', u'Heath Ledger', u'Aaron E... | \n",
+ " 15 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 8.9 | \n",
+ " Pulp Fiction | \n",
+ " R | \n",
+ " Crime | \n",
+ " 154 | \n",
+ " [u'John Travolta', u'Uma Thurman', u'Samuel L.... | \n",
+ " 12 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 974 | \n",
+ " 7.4 | \n",
+ " Tootsie | \n",
+ " PG | \n",
+ " Comedy | \n",
+ " 116 | \n",
+ " [u'Dustin Hoffman', u'Jessica Lange', u'Teri G... | \n",
+ " 7 | \n",
+ "
\n",
+ " \n",
+ " | 975 | \n",
+ " 7.4 | \n",
+ " Back to the Future Part III | \n",
+ " PG | \n",
+ " Adventure | \n",
+ " 118 | \n",
+ " [u'Michael J. Fox', u'Christopher Lloyd', u'Ma... | \n",
+ " 27 | \n",
+ "
\n",
+ " \n",
+ " | 976 | \n",
+ " 7.4 | \n",
+ " Master and Commander: The Far Side of the World | \n",
+ " PG-13 | \n",
+ " Action | \n",
+ " 138 | \n",
+ " [u'Russell Crowe', u'Paul Bettany', u'Billy Bo... | \n",
+ " 47 | \n",
+ "
\n",
+ " \n",
+ " | 977 | \n",
+ " 7.4 | \n",
+ " Poltergeist | \n",
+ " PG | \n",
+ " Horror | \n",
+ " 114 | \n",
+ " [u'JoBeth Williams', u\"Heather O'Rourke\", u'Cr... | \n",
+ " 11 | \n",
+ "
\n",
+ " \n",
+ " | 978 | \n",
+ " 7.4 | \n",
+ " Wall Street | \n",
+ " R | \n",
+ " Crime | \n",
+ " 126 | \n",
+ " [u'Charlie Sheen', u'Michael Douglas', u'Tamar... | \n",
+ " 11 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
979 rows × 7 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " star_rating title \\\n",
+ "0 9.3 The Shawshank Redemption \n",
+ "1 9.2 The Godfather \n",
+ "2 9.1 The Godfather: Part II \n",
+ "3 9.0 The Dark Knight \n",
+ "4 8.9 Pulp Fiction \n",
+ ".. ... ... \n",
+ "974 7.4 Tootsie \n",
+ "975 7.4 Back to the Future Part III \n",
+ "976 7.4 Master and Commander: The Far Side of the World \n",
+ "977 7.4 Poltergeist \n",
+ "978 7.4 Wall Street \n",
+ "\n",
+ " content_rating genre duration \\\n",
+ "0 R Crime 142 \n",
+ "1 R Crime 175 \n",
+ "2 R Crime 200 \n",
+ "3 PG-13 Action 152 \n",
+ "4 R Crime 154 \n",
+ ".. ... ... ... \n",
+ "974 PG Comedy 116 \n",
+ "975 PG Adventure 118 \n",
+ "976 PG-13 Action 138 \n",
+ "977 PG Horror 114 \n",
+ "978 R Crime 126 \n",
+ "\n",
+ " actors_list title_length \n",
+ "0 [u'Tim Robbins', u'Morgan Freeman', u'Bob Gunt... 24 \n",
+ "1 [u'Marlon Brando', u'Al Pacino', u'James Caan'] 13 \n",
+ "2 [u'Al Pacino', u'Robert De Niro', u'Robert Duv... 22 \n",
+ "3 [u'Christian Bale', u'Heath Ledger', u'Aaron E... 15 \n",
+ "4 [u'John Travolta', u'Uma Thurman', u'Samuel L.... 12 \n",
+ ".. ... ... \n",
+ "974 [u'Dustin Hoffman', u'Jessica Lange', u'Teri G... 7 \n",
+ "975 [u'Michael J. Fox', u'Christopher Lloyd', u'Ma... 27 \n",
+ "976 [u'Russell Crowe', u'Paul Bettany', u'Billy Bo... 47 \n",
+ "977 [u'JoBeth Williams', u\"Heather O'Rourke\", u'Cr... 11 \n",
+ "978 [u'Charlie Sheen', u'Michael Douglas', u'Tamar... 11 \n",
+ "\n",
+ "[979 rows x 7 columns]"
+ ]
+ },
+ "execution_count": 5,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
"source": [
- "# Crea una nueva columna llamada 'title_length' con la longitud (número de caracteres) de cada título"
+ "# Crea una nueva columna llamada 'title_length' con la longitud (número de caracteres) de cada título\n",
+ "df['title_length'] = df['title'].str.len()\n",
+ "print(df.dtypes)\n",
+ "df"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 6,
"id": "cae9c2e7",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Media: 15.48\n",
+ "Mediana: 14.0\n",
+ "Moda: 0 12\n",
+ "Name: title_length, dtype: int64\n"
+ ]
+ }
+ ],
"source": [
- "# Calcula media, mediana y moda de la columna 'title_length'"
+ "# Calcula media, mediana y moda de la columna 'title_length'\n",
+ "media = round(df['title_length'].mean(),2)\n",
+ "print(f\"Media: {media}\")\n",
+ "\n",
+ "mediana = df['title_length'].median()\n",
+ "print(f\"Mediana: {mediana}\")\n",
+ "\n",
+ "moda = df['title_length'].mode()\n",
+ "print(f\"Moda: {moda}\")"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 7,
"id": "69664a9b",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Rango: 67\n",
+ "Varianza: 72.11\n",
+ "Desviación Estandar: 8.49\n"
+ ]
+ }
+ ],
"source": [
- "# Calcula el rango, la varianza y la desviación estándar de 'title_length'"
+ "# Calcula el rango, la varianza y la desviación estándar de 'title_length'\n",
+ "rango = df['title_length'].max()-df['title_length'].min()\n",
+ "print(f\"Rango: {rango}\")\n",
+ "\n",
+ "varianza = round(df['title_length'].var(),2)\n",
+ "print(f\"Varianza: {varianza}\")\n",
+ "\n",
+ "desv_estandar = round(df['title_length'].std(),2)\n",
+ "print(f\"Desviación Estandar: {desv_estandar}\")\n",
+ "\n"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 8,
"id": "6b9a931c",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Asimetría: 1.53\n",
+ "Curtosis: 3.81\n"
+ ]
+ }
+ ],
"source": [
- "# Calcula asimetría y curtosis de la columna 'title_length'"
+ "# Calcula asimetría y curtosis de la columna 'title_length'\n",
+ "asimetria = round(df['title_length'].skew(),2)\n",
+ "print(f\"Asimetría: {asimetria}\")\n",
+ "\n",
+ "curtosis = round(df['title_length'].kurt(),2)\n",
+ "print(f\"Curtosis: {curtosis}\")\n"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 9,
"id": "c0d09e68",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb\n",
+ "M\n"
+ ]
+ }
+ ],
"source": [
- "# Imprime el título más corto y el título más largo según su longitud"
+ "# Imprime el título más corto y el título más largo según su longitud\n",
+ "id_max = df['title_length'].idxmax()\n",
+ "titulo_largo = df.loc[id_max, 'title']\n",
+ "print(titulo_largo)\n",
+ "\n",
+ "id_min = df['title_length'].idxmin()\n",
+ "titulo_corto = df.loc[id_min, 'title']\n",
+ "print(titulo_corto)"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 10,
"id": "e86a1ced",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1MAAAIjCAYAAADm7UHpAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjExLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlcelbwAAAAlwSFlzAAAPYQAAD2EBqD+naQAAReFJREFUeJzt3XlY1WX+//EXAqKoCCoiGIqpSaa5m0tqaliZzmg2Lk01WZqZVqNNqa06Zm7TNmbWTGbOZGplLqVpWrnrpEalppSRuS+4sW9y//7oy/l5OoBwc+Ac5Pm4Lq8897nPfd6H9+ecePlZjo8xxggAAAAAUCQVPF0AAAAAAJRFhCkAAAAAsECYAgAAAAALhCkAAAAAsECYAgAAAAALhCkAAAAAsECYAgAAAAALhCkAAAAAsECYAgDgCpCVlaW+ffvq/vvvV05OjqfLAYBygTAFwK02b96s6OhoffPNN54updz66aefFB0drU8++cQt63lDT0u7hryeb9WqVYqOjtb+/ftLpYbL1fN7Y8eOVXx8vP7xj3+oQoWS/9+7u7ezghS1/yW9vXjDe6IoPLntAlc6whSAfH333XeKjo7WvHnz8rx/3rx5io6O1nfffecYS05OVlxcnFJTU4v0XF988YXLWrCTkZGhuLg4XbhwwS3r2fY0P7nbVe6f5s2bq3Pnzrrnnnv05ptv6uzZs26rwXa7yuv5EhMTFRcXp/T09CKt5Q6Xe/0LFy7U8uXLtXr1atWoUaNUanL3dlZQr/J6/UWd704lvb6Ngn4entx2gSudn6cLAOC90tLSFBcXpzNnzuR5/5kzZxQXF6e0tDTHWJcuXbRv3z7Vr1+/SM+VlJTkshauTLnb1ZNPPqmhQ4cqJydH586dU2xsrN544w2NGzdOb7zxhv785z87HlPa25Xt85WUy9XTqVMnxcbGqmbNmqVcmfsU1Ku8Xj+fGc74eQCeQZgC4FZVqlRRdHS0p8tAGRAaGuq0rXTu3FkjRozQkCFDdO+99yo8PFw9evSQVPrblbdtx5erx1tCX0nxtn4AQC4O8wPgVnmdS5CTk6O5c+fq9ttvV6tWrdS7d2+99NJLjkNO/vOf/2j06NGSpMGDBzsO/1q6dKljjQsXLmjixInq0qWLWrRooT/+8Y9O9+c6ceKERo0apdatW+umm27SggUL8jy349JzCD766CP16tVLTZs2VUJCgvbv3++o4dprr1WrVq00cOBArV692um5Ll1j0aJF6t69u2644QZNnz5dxhhJvx1+1bNnT7Vu3VoTJkxQZmam0xqFfa78nDx5Uo888ojT681PVlaW5syZo1tvvVXXX3+9evbsqTfeeEMXL14s1HO5s+78+Pv7a86cOfL399fEiRMd4yWxXRW0DVzunJiFCxeqe/fuat26tUaPHq2TJ0863Z97COz58+fz/LmtWrXKaTwrK0tvvfWWbr/9drVo0UJ9+/bVggULHNtRfvUU5n1x6etctmyZbr75ZrVq1UojR47U6dOnC2qHQ0lvZ5fr1e9ff2E+M9xVW1EUZv2i9qMwn2lF+XnYbgMA8saeKQBulde5BM8995z++c9/6uWXX1abNm2UkJCgdevW6fHHH9fs2bPVt29fJSUlafTo0Zo+fbpatGghSQoPD5cknT9/Xh07dlRycrJmzpypqKgorVixQgMGDNDTTz+tyZMnS/rtsMMOHTooICBA06dPV1hYmBYuXKjt27e7nNuRew7BnDlzlJ6erueee04bN25Udna2GjRooGXLljnmnjlzRh9//LF69+6tJUuWqH///k5rvPnmm/Lx8dHUqVP1ww8/aPTo0crOzlZwcLDi4uL0wgsvKC4uTqNGjVJmZqZeeuklx9qFfa68nD17Vh07dpSvr69mzJihsLAwvffee9q+fbvL3IyMDN16663au3evJk+erDZt2uiHH37QE088oc2bN+v9998vQpeLV/flhIaGqmPHjtq0aZOSk5NVtWrVEtmuCtoGCjonZu7cucrOztaUKVN06tQpPfHEE1q1apV27tzpOF8p9xDY7Oxsp8emp6crLi5OiYmJTmO33HKLvvvuO02aNEkdO3bU6dOntXjxYmVmZmro0KF51lPY90Xu63znnXeUkpKiSZMm6dSpUxo1apT27NmjTZs2FdiP0tjOLter37/+y83Pi7vfA7brF6Ufhf1MK+zP4/3337faBgAUwABAPrZt22YkmdDQUNOkSROXP6GhoUaS2bZtm+Mxn332mZFkNm3a5Bhr0qSJueeee1zWz8zMdPx96dKlLmvleuKJJ4yPj4/59ttvncYfe+wx4+PjY3744QdjjDFjx441vr6+Jj4+3mneoEGDjCTz3//+1zG2cOFCI8n069fPaW5OTk6+P48777zTtG3b1mWNu+66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D/LGe8n70SPvR4+8Hz3yfvTI+xWnR7lHrV2Ox8PUmjVr1L9/f02dOlWPPfaY032RkZEKDg7Wnj17dNtttznGd+/erebNmxd6Tl4CAgIUEBDgMu7v71+ib4iSXv9Kl3GxcCGnWM+R41Po56GXnsN7yfvRI+9Hj7wfPfJ+9Mj72fSosPM9+qW9a9euVb9+/fTiiy9qzJgxLvf7+Pho8ODBmjt3rpKSkiRJW7du1ddff6277rqr0HMAAAAAwN08tmcqKSlJf/zjHxUUFKRdu3bp7rvvdtw3bNgw3XTTTZKkF198Ub169VKzZs103XXXadOmTRozZox69erlmF+YOQAAAADgTh4LUxUrVtS//vWvPO+LjIx0/D0kJETbt2/Xli1bdPLkSb388suKjo52ml+YOQAAAADgTh4LUwEBAU57owri6+urrl27FnsOAAAAALiLR8+ZAgAAAICyijAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABYIUwAAAABggTAFAAAAABb8PF0AUJZFjV/p6RIcDk673dMlAAAAlCvsmQIAAAAAC4QpAAAAALBAmAIAAAAAC4QpAAAAALBAmAIAAAAAC4QpAAAAALBAmAIAAAAAC4QpAAAAALBAmAIAAAAAC4QpAAAAALBAmAIAAAAAC4QpAAAAALBAmAIAAAAAC4QpAAAAALBAmAIAAAAAC4QpAAAAALBAmAIAAAAAC4QpAAAAALBAmAIAAAAAC4QpAAAAALBAmAIAAAAAC4QpAAAAALBAmAIAAAAAC4QpAAAAALBAmAIAAAAAC4QpAAAAALBAmAIAAAAAC4QpAAAAALBAmAIAAAAAC4QpAAAAALBAmAIAAAAAC4QpAAAAALBAmAIAAAAACx4PU9u3b9d9992nDh066JtvvnG5f8aMGerQoYPTnz//+c8u8zZu3KhBgwbppptu0iOPPKLjx4+XRvkAAAAAyik/Tz75008/rXXr1umOO+7Q/PnzlZiY6DInPj5egYGBevHFFx1jgYGBTnO++uor9erVS+PGjdO9996rWbNmqXPnzvruu+9UrVq1En8dAAAAAMofj4apJ598UlOmTNGRI0c0fvz4fOfVqFFDHTp0yPf+Z555RgMGDNALL7wgSerevbvCw8P1r3/9S48//rjb6wYAAAAAjx7mV7169ULN27Fjh3r06KH+/fvr5ZdfVmZmpuO+1NRUbd++XX379nWMBQYG6uabb9a6devcXjMAAAAASB7eM1UYgYGBuvvuu9WtWzcdPXpUL7zwgpYsWaKNGzfK19dXhw8fVk5OjiIiIpweFxERoS+++CLfdTMyMpSRkeG4nXuIYVZWlrKystz+OnLXLIm1y5MAX1Nya1cwTv8ta8rLtsV7yfvRI+9Hj7wfPfJ+9Mj7FadHhX2MjzHG4785HjlyRJGRkfrqq6900003Od2XkZGhgIAAx+0DBw4oOjpa7733ngYPHqw9e/aoefPm2rJlizp16uSY9+STT2rp0qX66aef8nzOiRMnatKkSS7j77//vss5WQAAAADKj9TUVN111126cOGCgoKC8p3n9XumLg1SktSoUSNFRUXpu+++0+DBg1WjRg1J0tmzZ53mnTlzRjVr1sx33QkTJmjs2LGO24mJiYqMjFSvXr0K/IHZysrK0tq1axUTEyN/f3+3r19eNJu4psTWDqhgNLltjp7dWUEZOT4l9jwlZc/EWzxdQqngveT96JH3o0fejx55P3rk/YrTo7wujJcXrw9Tv5edna2EhARVqVJF0m+H89WpU0c7duxQnz59HPP+97//qUuXLvmuExAQ4BLUJMnf379E3xAlvf6VLuNiyYecjByfUnkedytv2xXvJe9Hj7wfPfJ+9Mj70SPvZ9Ojws73+PdMFSQzM1PTp093XHAiOztb48aNU2pqqgYMGOCYd//99+vtt9/W0aNHJUlLlizRDz/8oPvvv98jdQMAAAC48nl0z9TKlSs1efJkR1h6+OGHFRQUpGHDhmnYsGHy9/dXcnKyIiIiFB4eruPHjys4OFjLly/Xtdde61jnueee008//aRGjRopMjJSR44c0euvv6527dp56qUBAAAAuMJ5NEy1b99er776qsv4VVddJUny8fHR5MmT9eyzz+qnn35SSEiIwsPD5ePjfAhWQECAPvjgAx07dkwnT55Uo0aN+LJeAAAAACXKo2EqNDRUoaGhl51XsWJFXXfddZedFxER4XKJdAAAAAAoCV59zhQAAAAAeCvCFAAAAABYIEwBAAAAgAXCFAAAAABYIEwBAAAAgAWPXs0PgPtEjV/p6RIcDk673dMlAAAAlDj2TAEAAACABcIUAAAAAFggTAEAAACABc6ZAuB2JXn+VoCv0Yz2UrOJa5Rx0eey8zl/CwAAlBT2TAEAAACABcIUAAAAAFggTAEAAACABcIUAAAAAFggTAEAAACABcIUAAAAAFggTAEAAACABcIUAAAAAFggTAEAAACABcIUAAAAAFggTAEAAACABcIUAAAAAFggTAEAAACABcIUAAAAAFggTAEAAACABcIUAAAAAFggTAEAAACABcIUAAAAAFggTAEAAACABcIUAAAAAFjws33grl27tGTJEh06dEjZ2dlO9y1atKjYhQEAAACAN7PaM/XBBx+oS5cu+vHHH7VgwQL5+fnp22+/1eLFi5WVleXuGgEAAADA61jtmXrhhRf03//+VwMGDJCPj4/ee+895eTkaMyYMTp79qy7awQAAAAAr2MVpn788Uf17t1bkuTv76/U1FQFBgbqmWeeUXR0tFsLBAAAAABvZHWYX0ZGhipXrixJioiI0P79+yVJ6enpysjIcF91AAAAAOClrC9Akatfv376y1/+okGDBmn58uXq0aOHO+oCAAAAAK9mtWfqq6++cvx96tSpuvXWW7V69Wq1aNFCb7/9ttuKAwAAAABvZbVn6qabbnL8vXLlypo5c6a76gEAAACAMoEv7QUAAAAAC4XeM1WrVi1JUkJCguPv+UlISCheVQAAAADg5Qodpl5//fU8/w4AAAAA5VGhw9TgwYPz/DsAAAAAlEdW50zl5ORo3759LuP79u1TTk5OsYsCAAAAAG9nFaZmzpyp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QkKCoqOjverCGOVZbGysjDFq3bp1nvdnZ2dr79698vPzU9OmTUvky5yRv7S0NMXFxalWrVq66qqr8pxjjNH+/fuVkZGh6667zvEl3igdxhgdOHBAmZmZuvrqq1W5cuU858XHx+vcuXOKjo5WlSpVSrlKSL99ZUhsbKzCwsLUuHFjl/uPHTumo0ePqlGjRgoJCfFAheXTqVOn9OOPP7qMd+rUSRUqOP9795kzZxQfH6/IyEjVqVOntErEJY4cOaKEhAQ1bdpUFStWdLk/OTlZ+/fvV61atRQVFVX6BZZTx48f188//5znfW3btlWlSpUctzMzM7V3715VrlxZ0dHR7inAoEQlJSWZW265xVSpUsU0adLEVKlSxcybN8/TZZVr//znP821115rgoODTZMmTfKcs3XrVlO3bl0TGRlpateubaKjo01cXFwpV1o+nT592gwfPtxUr17dtGjRwtSsWdO0a9fO5ef/888/m2bNmplatWqZ+vXrmzp16pgNGzZ4qOryZ/78+SYqKspce+21pnHjxiYoKMi8+uqrTnPOnz9vunfvbqpVq2auueYaU61aNbNgwQIPVVy+3XXXXaZChQrmL3/5i9N4VlaWueeee0ylSpVM06ZNTUBAgJkyZYpniiyH5s2bZypWrGg6d+7s9Cc1NdVp3nPPPWcCAgIcPXrggQfMxYsXPVR1+XPkyBHTvXt3U716ddO2bVtz9dVXm9WrVzvNmTdvntPverfccotJSkryUMXly5IlS1zeQ+Hh4cbPz8+cOXPGMW/dunUmNDTUNGjQwNSsWdO0aNHCHDp0qNjPT5gqYQ899JBp3Lixo5nz5s0zvr6+5ocffvBwZeXXmDFjzN69e83TTz+dZ5hKTU01ERER5uGHHzbGGJOdnW169+5tWrduXdqllkvffvut+fe//20yMzONMb/149ZbbzWtWrVymtexY0fTq1cvk5WVZYwx5rHHHjO1a9fmf16l5LXXXjMnTpxw3F6wYIGRZL7//nvH2H333WeaNm1qzp8/b4wxZs6cOcbf398cOHCg1Ostz+bOnWs6depkbrzxRpcwNW3aNFOrVi0THx9vjDHmiy++MBUqVDBr1qzxQKXlz7x580zdunULnLNs2TLj7+9vtmzZYowxZv/+/aZ69ermtddeK40Sy7309HRz3XXXmdtuu80kJycbY4xJSEgwixYtcszZu3ev8fX1Nf/5z38c9zds2NCMHDnSIzXDmOuvv97079/fcfvcuXMmJCTEPPXUU8YYYzIyMkyXLl1M9+7di/1chKkSlJmZaapWreryr7X16tUz48aN81BVyJVfmPr444+Nj4+POXbsmGNs8+bNRpKJjY0txQqRa9GiRUaSSUlJMcYY88MPPxhJZv369Y45p06dMr6+vmbhwoWeKrNcO3bsmJHk+Nfa1NRUU6lSJfPmm2865ly8eNGEhYWZ559/3kNVlj/79u0zderUMfHx8aZbt24uYeqaa64xf/3rX53GbrzxRjNo0KBSrLL8mjdvngkPDze7d+82e/bsMRkZGS5z/vCHP5hbb73VaWzYsGGmRYsWpVRl+TZ//nxToUIFc/jw4XznPPnkkyYqKspp7B//+IepWrWq4x8GUXp27NhhJJlVq1Y5xt555x1TsWJFc+HCBcfYp59+aiSZX375pVjPxwUoStBPP/2k5ORktWnTxmm8bdu2io2N9VBVuJzY2FhFREQoPDzcMda+fXvHfSh9O3bsUJ06dRQYGCjp//fh0vdWaGio6tevT49K0alTp7R582atWLFC9957r3r27KkePXpIkvbt26f09HSnHlWoUEFt2rShR6UkIyNDgwYN0vTp09WgQQOX+1NSUvTjjz+6/D+qffv29KgUHT9+XAMGDFCfPn1Uo0YNvfLKK073x8bG5tmjPXv2KCsrqzRLLZe++OILtWrVSnXr1tWePXsUFxfn8nPPr0fJyck6cOBAaZYLSXPnzlVkZKRuueUWx1hsbKwaN26soKAgx5i7frfjAhQl6OzZs5KkmjVrOo3XrFlThw4d8kRJKISzZ8+69Mzf31/VqlVz9BSlZ+vWrZo1a5ZeffVVx9jZs2dVsWJFl4u51KxZkx6Vol27dmnKlCk6ceKEUlJSNHv2bMdFQAr6/Pvll19KvdbyaOzYsYqOjta9996b5/3nzp2TlHePeB+VjsaNG2vPnj267rrrJEkffPCBBg8erKioKPXv319S3v9Pqlmzpi5evKjExESX++Bex44dU+XKldWhQwelpKQoOTlZWVlZmjt3rm699VZJv/Xo9/9gkdsX3kulKy0tTQsXLtSYMWOcLuKS1/uoRo0ajvuKgz1TJSj3l4r09HSn8bS0tDyvAgPv4O/v79Iz6bc+0rfS9f3336tv374aPny4Ro4c6Rj39/dXVlaWLl686DSf91bpuu2227R582YdOHBAs2fP1p/+9CetX79eEp9/nrZx40a9++67uvvuu7V582Zt3rxZFy5ccOxNzM7OpkdeoHPnzo4gJUkDBw5Ujx49tGjRIsdYXv9PSktLkyT6VAr8/f21efNm/e1vf9OePXv0yy+/aMiQIRoyZIguXLjgmEOPvMNHH32kpKQk3X///U7jefUo93Zxe0SYKkH169eXJB09etRp/OjRo6pXr54nSkIh1K9fXydOnFBOTo5j7NSpU8rKyqJvpWj37t3q2bOnBg4cqFmzZjndV79+fRljdPz4ccdY7m165Bl33HGHrr76aq1evVoSn3+elp6erlatWmn69OkaP368xo8fr/j4eO3atUvjx49XSkqKQkNDFRgYSI+8TFhYmFNP6tevn2ePgoODVa1atdIur9yJiopSjRo19Kc//UmS5OPjoxEjRuj8+fPavXu3pPx7JIn3UinL3WMYGRnpNF6SPSJMlaA6deqoWbNmWrFihWPszJkz2rJli2JiYjxYGQoSExOjxMREx7+wS9Ly5ctVsWJFde3a1XOFlSN79+5Vz549NWDAAL3xxhsu3/HVuXNnVa5c2em9tXnzZp05c4b3VinIzMxUdna201hSUpJOnjzpOIwiKipKjRo1curR8ePH9fXXX9OjUtCrVy/HHqncP61atXLsTaxevboqVKigHj16OPUoMzNTn332GT0qJSkpKU6309LStHnzZjVr1swxFhMTo1WrVjntiV++fDk9KiW33HKLkpOTlZiY6Bg7cuSIpN/O1ZV+69HmzZsdh85Kv/WoefPmCgsLK92Cy7EDBw5o48aNGj58uMt9MTExOnr0qL755hvH2PLlyxUUFKQbbriheE9crMtX4LI++eQT4+vrayZNmmSWLl1qOnfubJo3b57nFXtQOr777juzadMmc++995p69eqZTZs2mU2bNjldceeee+4x9erVMwsWLDD//ve/TfXq1c1zzz3nwarLj/j4eFO7dm3TsWNHs3HjRkd/Nm3aZNLS0hzzpkyZYqpVq2befPNNs3DhQtOgQQMzcOBAD1Zefhw+fNi0atXKvP766+bzzz837733nrnhhhtM/fr1zenTpx3zPvroI+Pn52emTJliPv74Y9O+fXvTunVrx+XsUbryuprfrl27TKVKlcyjjz5qVqxYYf7whz+YiIgIpz6i5PTu3ds8/fTT5pNPPjGLFy82nTt3NrVr13Zcqt6Y366UWbt2bXPnnXeaFStWmBEjRpjAwECze/duD1ZefuTk5Jhu3bqZHj16mE8++cS8//77plGjRuaPf/yjY056erpp1qyZufHGG83SpUvNxIkTja+vr/nkk088V3g5NH78eFOnTp18/x/Tt29fc80115jFixeb2bNnm8qVK5uXX3652M/rY4wxxYtjuJwvvvhCb731ls6cOaM2bdpo/PjxjpPeUPpGjBihvXv3uoyvWLHC0ZesrCy9/vrrWrNmjfz8/DRgwADdd999LntI4H7r16/XM888k+d9ixcvVt26dR23//vf/+rDDz9URkaGbr75Zj322GMcn15K4uPjNXv2bO3Zs0fBwcFq3769HnzwQZfDjtasWaO3335b586dU7t27TRu3DgFBwd7puhy7pFHHlF4eLieeuopp/Fdu3bptdde09GjRxUdHa1x48ZxaFIpSU1N1ZtvvqkNGzbI19dXLVq00KOPPqqQkBCneb/88otmzJihuLg41atXT2PGjFGLFi08VHX5k5qaqpdfflkbN25UtWrV1L17d40YMcJx3qH020UMpk2bpl27dqlmzZoaMWKEevbs6cGqy5+BAweqU6dO+utf/5rn/enp6XrllVf01VdfqXLlyho8eLCGDBlS7OclTAEAAACABc6ZAgAAAAALhCkAAAAAsECYAgAAAAALhCkAAAAAsECYAgAAAAALhCkAAAAAsECYAgAAAAALhCkAgFfIzMzUokWLdP78+WLNcfdzlqaUlBQtWrRIycnJni4FAFAIhCkAQKlLT0/XokWLdOHCBcdYYmKihgwZooMHDxZ6TnG5e72iyOv1nT59WkOGDNGJEydKvR4AQNERpgAApe78+fMaMmSIDh8+7BgLCAjQoEGDFBISku+cK8mV/voAoDzw83QBAIDyxRij5cuXS5JWr16tPXv2KDQ0VF26dFG/fv1UvXr1fOe0aNEizzUTExO1bds2SVLLli0VFhZWrBoLWi8lJUWffPKJ+vTpo1OnTmnfvn266qqr8qwtLi5O+/fvV8OGDXXttdfqww8/VExMjGrUqJHn62vYsKHjsfHx8QWuDQDwPMIUAKBUGWP02WefSZK++OILVa9eXdHR0WrRooWGDBmi2NhYXX/99fnO+b0lS5Zo+PDhat68uQIDA7Vt2zZNmTJFo0aNsqrvcuvlHorXt29f/fzzz2rQoIE2bNigoUOH6p///KdjncmTJ2vKlCm68cYbdfLkSUVGRuqzzz7Ttm3b1L59+zxfX26YGjt2bIFrAwC8hAEAoJQdP37cSDK7d+92jJ0+fdpIMrGxsYWeEx8fb6pUqWLWr1/vmLNjxw5TqVIls2/fvsvWYbPeL7/8YiSZ+++/3+Tk5BhjjFm/fr3x8fExv/76qzHGmH379pkKFSqYTz75xBhjTE5Ojrn77ruNJLNt27Z8X19h1gYAeA/2TAEAyqyFCxeqZs2aOn36tD788EMZYyRJNWrU0KZNmxQdHV1i640YMUI+Pj6SpBtvvFEVKlTQjz/+qHr16mnp0qW65ppr1KdPH0mSj4+P/va3v+m9994rVB0FrQ0A8B6EKQBAmXXw4EFlZmbqo48+chrv0qWLatWqVaLr1ahRw/F3X19f+fn5KT09XZJ0+PBhRUVFOc3//e2CFLQ2AMB7EKYAAGVWUFCQQkJCtGjRIq9ar0aNGoqNjXUaO3fuXLHWBAB4Hy6NDgAodVWrVpWkAve2FGbOrbfeqn379mnDhg1O40lJSUpKSipyXe5ar3Pnztq1a5eOHDniGMu9el+uwrw+AIB3Y88UAKDUVa1aVU2aNNH06dPVv39/hYWFuVyprzBzbr75Zj344IPq06ePHnnkETVs2FBxcXFaunSpPv/8c1WrVq1Idblrvdtuu02dOnVSTEyMRo8erZMnT+qdd96RJMe5UHm9vksvjQ4A8H7smQIAeMSnn36qq6++WqtWrdKmTZtcvrS3sHPeeustffTRR0pOTtbWrVsVFhambdu2qUGDBpetwWa9KlWqaNCgQS7BauDAgapbt67j9qpVqzR06FDt3LlTFStW1LJlyyTJ6XG/f32FXRsA4B18TO6ligAAgNucPXvW6UISb7/9tsaOHauEhARVrFjRg5UBANyFw/wAAFes77//Xj/88EOe99WuXVs9evQosed+5pln5OPjo9atW2v//v2aPXu2Jk+eTJACgCsIYQoAcMXau3evy4UfcjVt2rREw9Srr76qd999V//73/8UEhKi1atXq2vXriX2fACA0sdhfgAAAABggQtQAAAAAIAFwhQAAAAAWCBMAQAAAIAFwhQAAAAAWCBMAQAAAIAFwhQAAAAAWCBMAQAAAIAFwhQAAAAAWCBMAQAAAICF/wcpUH7rAd7nWwAAAABJRU5ErkJggg==",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
"source": [
- "# grafica tus resultados"
+ "# grafica tus resultados\n",
+ "plt.figure(figsize=(10, 6))\n",
+ "df['title_length'].hist(bins=20)\n",
+ "plt.title('Histograma de la Distribución de title_length')\n",
+ "plt.xlabel('title_length')\n",
+ "plt.ylabel('Frecuencia')\n",
+ "plt.show()"
]
},
{
@@ -293,42 +589,85 @@
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 11,
"id": "3005c0f9",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Lista de 5 valores reales de title_length: [24, 13, 22, 15, 12]\n"
+ ]
+ }
+ ],
"source": [
- "# Crea una lista con 5 valores reales de df['title_length'], por ejemplo: [10, 13, 14, 18, 22]"
+ "# Crea una lista con 5 valores reales de df['title_length'], por ejemplo: [10, 13, 14, 18, 22]\n",
+ "title_lengths = df['title_length'].tolist()[:5]\n",
+ "print(f\"Lista de 5 valores reales de title_length: {title_lengths}\")"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 27,
"id": "d96b771f",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Media de los 5 valores: 17.2\n"
+ ]
+ }
+ ],
"source": [
- "# Calcula la media de los 5 valores"
+ "# Calcula la media de los 5 valores\n",
+ "media_list = sum(title_lengths)/len(title_lengths)\n",
+ "print(f\"Media de los 5 valores: {media_list}\")"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 28,
"id": "346d0dc5",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Diferencias al cuadrado: 118.8\n"
+ ]
+ }
+ ],
"source": [
- "# Calcula las diferencias al cuadrado con respecto a la media"
+ "# Calcula las diferencias al cuadrado con respecto a la media\n",
+ "sum_diferencias = round(sum([(x - media_list) ** 2 for x in title_lengths]),2)\n",
+ "print(f\"Diferencias al cuadrado: {sum_diferencias}\")"
]
},
{
"cell_type": "code",
- "execution_count": null,
+ "execution_count": 31,
"id": "f56517ff",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Varianza de los 5 valores: 23.76\n",
+ "Desviación estándar de los 5 valores: 4.87\n"
+ ]
+ }
+ ],
"source": [
- "# Calcula la varianza (promedio de las diferencias al cuadrado) y su raíz cuadrada para obtener la desviación"
+ "# Calcula la varianza (promedio de las diferencias al cuadrado) y su raíz cuadrada para obtener la desviación\n",
+ "varianza_list = round((sum_diferencias / len(title_lengths)),2)\n",
+ "desv_estandar = round(varianza_list ** 0.5,2)\n",
+ "print(f\"Varianza de los 5 valores: {varianza_list}\")\n",
+ "print(f\"Desviación estándar de los 5 valores: {desv_estandar}\")"
]
}
],