10. Práctica III#

10.1. Base de Datos 1.#

10.1.1. Presentación Base de Datos 1.#

En este caso, utilizamos el dataset llamado University Employee Salaries (2011 - Present) que explora los salarios de los empleados de educación superior de las universidades públicas de O Tenga en cuenta que los beneficios no están incluidos en los salarios informados.hio que se remontan a 2011. Este conjunto de datos ofrece información sobre las ganancias de varios puestos en múltiples instituciones, sin incluir otros beneficios.
Este conjunto de datos incluye información salarial de los empleados de las universidades públicas de Ohio, que se extiende desde 2011 hasta el presente. El conjunto de datos ofrece detalles como el nombre del empleado, la escuela, la descripción del trabajo, el departamento, los ingresos y el año correspondiente.

10.1.2. Ejercicios de la Base de Datos 1#

  • Importa las librerías que vas a usar.

  • Importar el DF.

  • Mostrar las primeras 5 y las 5 últimas filas del Data.

  • Cambiar el nombre de al menos 4 columnas y mostrar el DF con las columnas cambiadas.

  • Filtrar una columna considerando un dato de ella.

  • Mostrar las cinco primeras filas del DF con los datos filtrados.

  • Calcular y mostrar las estadísticas descriptivas en una columna.

  • identificar y mostrar los valores únicos de una columna.

  • identificar y mostrar la cantidad de veces que aparecen los datos de una de las columnas. Hacer este ejercicio dos veces con dos columnas distintas.

  • Graficar el dato anterior.

¿Qué es Kaggle?

Kaggle es una plataforma en línea que se enfoca en la ciencia de datos y el aprendizaje automático. Ofrece una comunidad de científicos de datos, ingenieros de datos y entusiastas del aprendizaje automático para colaborar, competir y aprender unos de otros. En ella se pueden encontrar: Concursos de Ciencia de Datos, Datasets, Kernels y Aprendizaje y Tutoriales.

10.2. Base de Datos 2#

10.2.1. Presentación de Base de Datos 2.#

En este caso, utilizamos el dataset llamado Most Streamed Spotify Songs 2023.Este conjunto de datos contiene una lista completa de las canciones más famosas de 2023 que aparecen en Spotify. El conjunto de datos proporciona información sobre los atributos, la popularidad y la presencia de cada canción en varias plataformas de música.
El conjunto de datos incluye información como el nombre de la pista, el nombre del artista, la fecha de lanzamiento, las listas de reproducción y listas de Spotify, las estadísticas de transmisión, la presencia de Apple Music, la presencia de Deezer, las listas de Shazam y varias funciones de audio.
Atributos o nombres de las columnas.
  • track_name: Nombre de la canción

  • artista(s)_nombre: Nombre del(los) artista(s) de la canción

  • artist_count: Número de artistas que contribuyen a la canción

  • released_year: Año en el que se lanzó la canción

  • released_month: Mes en el que se lanzó la canción

  • released_day: Día del mes en el que se lanzó la canción

  • in_spotify_playlists: Número de listas de reproducción de Spotify en las que se incluye la canción

  • in_spotify_charts: Presencia y rango de la canción en las listas de Spotify transmisiones: Número total de transmisiones en Spotify

  • in_apple_playlists: Número de listas de reproducción de Apple Music en las que se incluye la canción

  • in_apple_charts: Presencia y rango de la canción en las listas de Apple Music

  • in_deezer_playlists: Número de listas de reproducción de Deezer en las que se incluye la canción

  • in_deezer_charts: Presencia y rango de la canción en las listas de Deezer

  • in_shazam_charts: Presencia y rango de la canción en las listas de Shazam

  • bpm: Latidos por minuto, una medida del tempo de la canción

  • clave: Clave de la canción

  • modo: Modo de la canción (mayor o menor)

  • danceability_%: Porcentaje que indica lo adecuada que es la canción para bailar

  • valence_%: Positividad del contenido musical de la canción

  • energy_%: Nivel de energía percibido de la canción

  • acústica_%: Cantidad de sonido acústico en la canción

  • instrumentalness_%: Cantidad de contenido instrumental en la canción

  • liveness_%: Presencia de elementos de actuación en vivo

  • speechiness_%: Cantidad de palabras habladas en la canción

10.2.2. Ejercicios de la Base de Datos 2.#

  • Importa las librerías que vas a usar.

  • Ajustar los datos si fuera necesario.

  • Importar el DF.

  • Describir el DF.

  • Verificar si hay valores nulos.

  • Realizar algunas de las opciones según corresponda:

    • Eliminar si hay valores nulos y imprimir el resultado.

    • Eliminar filas con valores nulos y verificar el resultado.

    • Eliminar columnas con valores nulos y verificar el resultado.

    • Rellenar los valores nulos con una cadena específica.

  • Realizar un gráfico de barra.

  • Contar el número de canciones por artistas y realizar un gráfico de barras.

  • Seleccionar algunas características de audio y gráficar un pairplot.

  • Realizar una matriz de correlación con los datos anteriores.

  • Graficar con un scatterplot dos relaciones.

  • Mostrar la media y la desviación estándar de dos valores.

  • Cambiar el nombre de al menos 4 columnas y mostrar el DF con las columnas cambiadas (al menos las cinco primeras)

10.3. Solucionarios#

Warning

Recuerda que los algoritmos que se ofrecen en ambos solucionarios no son respuestas únicas y son solo guías para orientar el aprendizaje.

10.3.1. Solucionario Base de Datos 1#

import pandas as pd

# Cargar el archivo CSV en un DataFrame
df = pd.read_csv('higher_ed_employee_salaries.csv')

# Mostrar las primeras filas del DataFrame
print(df.head())
print(df.tail())
                Name                     School  \
0         Don Potter        University of Akron   
1       Emily Potter  The Ohio State University   
2  Carol Jean Potter  The Ohio State University   
3         Kim Potter  The Ohio State University   
4      Graham Potter           Miami University   

                  Job Description  \
0              Assistant Lecturer   
1      Administrative Assistant 3   
2    Associate Professor-Clinical   
3           Manager 4, Compliance   
4  Building and Grounds Assistant   

                                          Department   Earnings  Year  
0                                        Social Work    2472.00  2019  
1  Arts and Sciences | Chemistry and Biochemistry...   48538.02  2022  
2                                         Pediatrics   22722.80  2013  
3                         Legal Affairs | Compliance  170143.44  2022  
4                Assoc VP Housing,Dining,Rec,Bus Svc    3075.20  2012  
                        Name                          School  \
934343         Danielle Noon            University of Toledo   
934344         Danielle Noon            University of Toledo   
934345  Kristen Lindsay Noon       The Ohio State University   
934346         Danielle Noon            University of Toledo   
934347          Kevin R Noon  Bowling Green State University   

                     Job Description            Department   Earnings  Year  
934343             Medical Assistant  OP-Clinic-Orthopedic   31659.43  2021  
934344     Patient Registration Spec          Registration    7974.25  2019  
934345  Assistant Professor-Clinical        Anesthesiology  243033.56  2018  
934346             Medical Assistant  OP-Clinic-Orthopedic   37642.16  2022  
934347    Asst Men's Basketbal Coach      Basketball - Men  103630.58  2022  
# Cambiar los nombres de las columnas
nuevos_nombres = {
    'Name': 'Nombre',
    'School': 'Escuela',
    'Job Description': 'Trabajo',
    'Department': 'Departamento',
    'Earnings': 'Ganancias',
    'Year': 'Año'
}

df = df.rename(columns=nuevos_nombres)

# Mostrar solo los nombres de las columnas cambiadas
print(df.columns)
Index(['Nombre', 'Escuela', 'Trabajo', 'Departamento', 'Ganancias', 'Año'], dtype='object')
# Filtrar datos por año (por ejemplo, 2019)
df_2019 = df[df['Año'] == 2019]

# Mostrar las primeras filas del DataFrame filtrado
print(df_2019.head())
            Nombre                    Escuela                       Trabajo  \
0       Don Potter        University of Akron            Assistant Lecturer   
35  Devante Potter  The Ohio State University      Research Assistant 1-B/H   
36      Ana Potter  The Ohio State University        Patient Care Associate   
40    Carol Potter  The Ohio State University  Associate Professor-Clinical   
68     Luke Potter  The Ohio State University        Patient Care Associate   

                     Departamento  Ganancias   Año  
0                     Social Work    2472.00  2019  
35     Chemistry and Biochemistry   20493.20  2019  
36           University Hospitals    6583.86  2019  
40                     Pediatrics   51060.36  2019  
68  Cancer Hosp & Research Instit    6784.69  2019  
# Calcular estadísticas descriptivas de las ganancias
earnings_stats = df['Ganancias'].describe()

# Mostrar estadísticas descriptivas
print(earnings_stats)
count    9.246730e+05
mean     5.465913e+04
std      6.137398e+04
min      2.000000e-02
25%      2.024923e+04
50%      4.452501e+04
75%      7.099997e+04
max      8.021377e+06
Name: Ganancias, dtype: float64
# Identificar las escuelas únicas
escuelas_unicas = df['Escuela'].unique()

# Mostrar las escuelas únicas
print("Escuelas únicas:")
for escuela in escuelas_unicas:
    print(escuela)
Escuelas únicas:
University of Akron
The Ohio State University
Miami University
Bowling Green State University
Central State University
Ohio University
Youngstown State University
Kent State University
University Of Cincinnati
Wright State University
University of Toledo
Shawnee State University
Cleveland State University
# Contar la cantidad de veces que aparece cada escuela
conteo_escuelas = df['Escuela'].value_counts()

# Mostrar el conteo de escuelas
print("Cantidad de veces que aparece cada escuela:")
print(conteo_escuelas)
Cantidad de veces que aparece cada escuela:
The Ohio State University         424050
University of Toledo               79777
University Of Cincinnati           79021
Kent State University              68338
Ohio University                    59852
Miami University                   58712
Wright State University            40215
Youngstown State University        32891
Bowling Green State University     31119
University of Akron                24101
Cleveland State University         20876
Shawnee State University            8362
Central State University            7034
Name: Escuela, dtype: int64
import matplotlib.pyplot as plt

# Graficar el conteo de escuelas
plt.figure(figsize=(10, 6))
conteo_escuelas.plot(kind='bar')
plt.title('Cantidad de veces que aparece cada escuela')
plt.xlabel('Escuela')
plt.ylabel('Cantidad')
plt.xticks(rotation=45, ha='right')
(array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12]),
 [Text(0, 0, 'The Ohio State University'),
  Text(1, 0, 'University of Toledo'),
  Text(2, 0, 'University Of Cincinnati'),
  Text(3, 0, 'Kent State University'),
  Text(4, 0, 'Ohio University'),
  Text(5, 0, 'Miami University'),
  Text(6, 0, 'Wright State University'),
  Text(7, 0, 'Youngstown State University'),
  Text(8, 0, 'Bowling Green State University'),
  Text(9, 0, 'University of Akron'),
  Text(10, 0, 'Cleveland State University'),
  Text(11, 0, 'Shawnee State University'),
  Text(12, 0, 'Central State University')])
_images/001fec4fc8abcf3942485221c267ec1256c3841163796c7ca19344fb29798323.png
# Contar la cantidad de veces que aparece cada Trabajo.
conteo_escuelas = df['Trabajo'].value_counts()

# Mostrar el conteo de escuelas
print("Cantidad de veces que aparece cada Trabajo:")
print(conteo_escuelas)
Cantidad de veces que aparece cada Trabajo:
Professor                                                28204
Associate Professor                                      24831
Assistant Professor                                      18684
Staff Nurse-B                                            18399
Lecturer                                                 15439
                                                         ...  
Manager 3, Nursing Education                                 1
Assoc Professor - Educator CEAS - Mechanical Eng Tech        1
Business Officer College of Allied Health Sciences           1
QM Instructional Designer & Master Reviewer                  1
Assoc Head Mens BB Coach                                     1
Name: Trabajo, Length: 38679, dtype: int64

10.3.2. Solucionario de Base de Datos 2.#

import pandas as pd

# Leer el archivo en modo binario y decodificar manualmente
with open('spotify-2023.csv', 'rb') as f:
    content = f.read()

try:
    decoded_content = content.decode('utf-8')
except UnicodeDecodeError:
    decoded_content = content.decode('latin-1')  # O cualquier otra codificación que sospeches

# Guardar el contenido decodificado en un nuevo archivo temporal
with open('spotify-2023-temp.csv', 'w', encoding='utf-8') as f:
    f.write(decoded_content)

# Cargar los datos desde el archivo temporal CSV
df = pd.read_csv('spotify-2023-temp.csv')

# Mostrar las primeras filas del DataFrame
print(df.head())
print(df.tail())
                            track_name    artist(s)_name  artist_count  \
0  Seven (feat. Latto) (Explicit Ver.)  Latto, Jung Kook             2   
1                                 LALA       Myke Towers             1   
2                              vampire    Olivia Rodrigo             1   
3                         Cruel Summer      Taylor Swift             1   
4                       WHERE SHE GOES         Bad Bunny             1   

   released_year  released_month  released_day  in_spotify_playlists  \
0           2023               7            14                   553   
1           2023               3            23                  1474   
2           2023               6            30                  1397   
3           2019               8            23                  7858   
4           2023               5            18                  3133   

   in_spotify_charts    streams  in_apple_playlists  ...  bpm key   mode  \
0                147  141381703                  43  ...  125   B  Major   
1                 48  133716286                  48  ...   92  C#  Major   
2                113  140003974                  94  ...  138   F  Major   
3                100  800840817                 116  ...  170   A  Major   
4                 50  303236322                  84  ...  144   A  Minor   

  danceability_%  valence_% energy_% acousticness_%  instrumentalness_%  \
0             80         89       83             31                   0   
1             71         61       74              7                   0   
2             51         32       53             17                   0   
3             55         58       72             11                   0   
4             65         23       80             14                  63   

   liveness_%  speechiness_%  
0           8              4  
1          10              4  
2          31              6  
3          11             15  
4          11              6  

[5 rows x 24 columns]
                    track_name      artist(s)_name  artist_count  \
948               My Mind & Me        Selena Gomez             1   
949  Bigger Than The Whole Sky        Taylor Swift             1   
950       A Veces (feat. Feid)  Feid, Paulo Londra             2   
951              En La De Ella  Feid, Sech, Jhayco             3   
952                      Alone           Burna Boy             1   

     released_year  released_month  released_day  in_spotify_playlists  \
948           2022              11             3                   953   
949           2022              10            21                  1180   
950           2022              11             3                   573   
951           2022              10            20                  1320   
952           2022              11             4                   782   

     in_spotify_charts    streams  in_apple_playlists  ...  bpm key   mode  \
948                  0   91473363                  61  ...  144   A  Major   
949                  0  121871870                   4  ...  166  F#  Major   
950                  0   73513683                   2  ...   92  C#  Major   
951                  0  133895612                  29  ...   97  C#  Major   
952                  2   96007391                  27  ...   90   E  Minor   

    danceability_%  valence_% energy_% acousticness_%  instrumentalness_%  \
948             60         24       39             57                   0   
949             42          7       24             83                   1   
950             80         81       67              4                   0   
951             82         67       77              8                   0   
952             61         32       67             15                   0   

     liveness_%  speechiness_%  
948           8              3  
949          12              6  
950           8              6  
951          12              5  
952          11              5  

[5 rows x 24 columns]
# Describir el DataFrame para obtener estadísticas descriptivas
print(df.describe())

# Verificar si hay valores nulos en el DataFrame
print(df.isnull().sum())
       artist_count  released_year  released_month  released_day  \
count    953.000000     953.000000      953.000000    953.000000   
mean       1.556139    2018.238195        6.033578     13.930745   
std        0.893044      11.116218        3.566435      9.201949   
min        1.000000    1930.000000        1.000000      1.000000   
25%        1.000000    2020.000000        3.000000      6.000000   
50%        1.000000    2022.000000        6.000000     13.000000   
75%        2.000000    2022.000000        9.000000     22.000000   
max        8.000000    2023.000000       12.000000     31.000000   

       in_spotify_playlists  in_spotify_charts  in_apple_playlists  \
count            953.000000         953.000000          953.000000   
mean            5200.124869          12.009444           67.812172   
std             7897.608990          19.575992           86.441493   
min               31.000000           0.000000            0.000000   
25%              875.000000           0.000000           13.000000   
50%             2224.000000           3.000000           34.000000   
75%             5542.000000          16.000000           88.000000   
max            52898.000000         147.000000          672.000000   

       in_apple_charts  in_deezer_charts         bpm  danceability_%  \
count       953.000000        953.000000  953.000000       953.00000   
mean         51.908709          2.666317  122.540399        66.96957   
std          50.630241          6.035599   28.057802        14.63061   
min           0.000000          0.000000   65.000000        23.00000   
25%           7.000000          0.000000  100.000000        57.00000   
50%          38.000000          0.000000  121.000000        69.00000   
75%          87.000000          2.000000  140.000000        78.00000   
max         275.000000         58.000000  206.000000        96.00000   

        valence_%    energy_%  acousticness_%  instrumentalness_%  liveness_%  \
count  953.000000  953.000000      953.000000          953.000000  953.000000   
mean    51.431270   64.279119       27.057712            1.581322   18.213012   
std     23.480632   16.550526       25.996077            8.409800   13.711223   
min      4.000000    9.000000        0.000000            0.000000    3.000000   
25%     32.000000   53.000000        6.000000            0.000000   10.000000   
50%     51.000000   66.000000       18.000000            0.000000   12.000000   
75%     70.000000   77.000000       43.000000            0.000000   24.000000   
max     97.000000   97.000000       97.000000           91.000000   97.000000   

       speechiness_%  
count     953.000000  
mean       10.131165  
std         9.912888  
min         2.000000  
25%         4.000000  
50%         6.000000  
75%        11.000000  
max        64.000000  
track_name               0
artist(s)_name           0
artist_count             0
released_year            0
released_month           0
released_day             0
in_spotify_playlists     0
in_spotify_charts        0
streams                  0
in_apple_playlists       0
in_apple_charts          0
in_deezer_playlists      0
in_deezer_charts         0
in_shazam_charts        50
bpm                      0
key                     95
mode                     0
danceability_%           0
valence_%                0
energy_%                 0
acousticness_%           0
instrumentalness_%       0
liveness_%               0
speechiness_%            0
dtype: int64
# Eliminar columnas que contienen valores nulos
df_sin_nulos_columnas = df.dropna(axis=1)

# Verificar el resultado
print(df_sin_nulos_columnas.isnull().sum())
track_name              0
artist(s)_name          0
artist_count            0
released_year           0
released_month          0
released_day            0
in_spotify_playlists    0
in_spotify_charts       0
streams                 0
in_apple_playlists      0
in_apple_charts         0
in_deezer_playlists     0
in_deezer_charts        0
bpm                     0
mode                    0
danceability_%          0
valence_%               0
energy_%                0
acousticness_%          0
instrumentalness_%      0
liveness_%              0
speechiness_%           0
dtype: int64
# Eliminar filas que contienen valores nulos
df_sin_nulos = df.dropna()

# Verificar el resultado
print(df_sin_nulos.isnull().sum())
track_name              0
artist(s)_name          0
artist_count            0
released_year           0
released_month          0
released_day            0
in_spotify_playlists    0
in_spotify_charts       0
streams                 0
in_apple_playlists      0
in_apple_charts         0
in_deezer_playlists     0
in_deezer_charts        0
in_shazam_charts        0
bpm                     0
key                     0
mode                    0
danceability_%          0
valence_%               0
energy_%                0
acousticness_%          0
instrumentalness_%      0
liveness_%              0
speechiness_%           0
dtype: int64
# Eliminar columnas que contienen valores nulos
df_sin_nulos_columnas = df.dropna(axis=1)

# Verificar el resultado
print(df_sin_nulos_columnas.isnull().sum())
track_name              0
artist(s)_name          0
artist_count            0
released_year           0
released_month          0
released_day            0
in_spotify_playlists    0
in_spotify_charts       0
streams                 0
in_apple_playlists      0
in_apple_charts         0
in_deezer_playlists     0
in_deezer_charts        0
bpm                     0
mode                    0
danceability_%          0
valence_%               0
energy_%                0
acousticness_%          0
instrumentalness_%      0
liveness_%              0
speechiness_%           0
dtype: int64
# Rellenar los valores nulos con 0
df_relleno_cero = df.fillna(0)

# Verificar el resultado
print(df_relleno_cero.isnull().sum())
track_name              0
artist(s)_name          0
artist_count            0
released_year           0
released_month          0
released_day            0
in_spotify_playlists    0
in_spotify_charts       0
streams                 0
in_apple_playlists      0
in_apple_charts         0
in_deezer_playlists     0
in_deezer_charts        0
in_shazam_charts        0
bpm                     0
key                     0
mode                    0
danceability_%          0
valence_%               0
energy_%                0
acousticness_%          0
instrumentalness_%      0
liveness_%              0
speechiness_%           0
dtype: int64
# Rellenar los valores nulos con una cadena específica
df_relleno_texto = df.fillna('Desconocido')

# Verificar el resultado
print(df_relleno_texto.isnull().sum())
track_name              0
artist(s)_name          0
artist_count            0
released_year           0
released_month          0
released_day            0
in_spotify_playlists    0
in_spotify_charts       0
streams                 0
in_apple_playlists      0
in_apple_charts         0
in_deezer_playlists     0
in_deezer_charts        0
in_shazam_charts        0
bpm                     0
key                     0
mode                    0
danceability_%          0
valence_%               0
energy_%                0
acousticness_%          0
instrumentalness_%      0
liveness_%              0
speechiness_%           0
dtype: int64
# Rellenar los valores nulos con la media de cada columna
df_relleno_media = df.apply(lambda x: x.fillna(x.mean()) if x.dtype.kind in 'biufc' else x)

# Verificar el resultado
print(df_relleno_media.isnull().sum())
track_name               0
artist(s)_name           0
artist_count             0
released_year            0
released_month           0
released_day             0
in_spotify_playlists     0
in_spotify_charts        0
streams                  0
in_apple_playlists       0
in_apple_charts          0
in_deezer_playlists      0
in_deezer_charts         0
in_shazam_charts        50
bpm                      0
key                     95
mode                     0
danceability_%           0
valence_%                0
energy_%                 0
acousticness_%           0
instrumentalness_%       0
liveness_%               0
speechiness_%            0
dtype: int64
import seaborn as sns
import matplotlib.pyplot as plt

# Plotear la distribución del año de lanzamiento
sns.histplot(df['released_year'], bins=20, kde=True)
plt.title('Distribución de Canciones por Año de Lanzamiento')
plt.xlabel('Año de Lanzamiento')
plt.ylabel('Cantidad de Canciones')
plt.show()
_images/0153275354e49b374d5b3a6e28d50afeaa326d93999317808f3c088e69b5b1d6.png
# Contar el número de canciones por artista
top_artists = df['artist(s)_name'].value_counts().head(10)

# Plotear los 10 artistas con más canciones
sns.barplot(x=top_artists.values, y=top_artists.index)
plt.title('Top 10 Artistas con Más Canciones en el Dataset')
plt.xlabel('Número de Canciones')
plt.ylabel('Artista')
plt.show()
_images/0526316b76f32cd6e1391edc5445b7308000a121a42248dbab626d24686b269b.png
# Seleccionar algunas características de audio
audio_features = ['danceability_%', 'energy_%', 'acousticness_%']

# Plotear un parplot para comparar estas características
sns.pairplot(df[audio_features])
plt.suptitle('Comparación de Atributos de Audio', y=1.02)
plt.show()
_images/5668e62d8a6c21e9cbb24bf4c60962609b1c15c51fc94b0a2aa651c11fadd016.png
import numpy as np

# Calcular la matriz de correlación
corr = df[audio_features].corr()

# Crear un mapa de calor de la matriz de correlación
sns.heatmap(corr, annot=True, cmap='coolwarm', vmin=-1, vmax=1)
plt.title('Matriz de Correlación entre Atributos de Audio')
plt.show()
_images/c346ef14f1fe44b984ade5ad5801f2120dd2d6402f59d702beb3491594ae0416.png
# Plotear la relación entre BPM y energy
sns.scatterplot(x='bpm', y='energy_%', data=df)
plt.title('Relación entre BPM y Energy')
plt.xlabel('BPM')
plt.ylabel('Energy %')
plt.show()
_images/65091adfa3fe089650fa23441344f3bd504e28905440a8a24ceb01d94933ab12.png
import numpy as np

# Calcular la media y desviación estándar de los BPM
bpm_mean = np.mean(df['bpm'])
bpm_std = np.std(df['bpm'])

print(f'Media de BPM: {bpm_mean}')
print(f'Desviación Estándar de BPM: {bpm_std}')

# Calcular la media y desviación estándar de la energía
energy_mean = np.mean(df['energy_%'])
energy_std = np.std(df['energy_%'])

print(f'Media de Energy %: {energy_mean}')
print(f'Desviación Estándar de Energy %: {energy_std}')
Media de BPM: 122.54039874081847
Desviación Estándar de BPM: 28.04307686714831
Media de Energy %: 64.2791185729276
Desviación Estándar de Energy %: 16.54184031690203
# Mostrar las primeras filas del DataFrame original
print("Columnas originales:", df.columns)

# Renombrar las columnas
df.columns = [
    'Nombre', 'Artista', 'Artista_Contribuyentes', 'Año_lanzamiento', "mes_lanzamiento", 
    'Día_lanzamiento', 'Listas_Spotify', 'Transmisiones_Spotify', 'Listas_Apple', 
    'Presencia_rango_Apple', "Listas_Deezer", 'Presencia_rango_Deezer', 'Listas_Shazam', 'Anchura_Pixel', 
    'Latidos', 'Clave', 'Modo', '%_Baile', 'Positividad', '%_energía', '%_sonido_acústico',
    '%_contenido_instrumental',  '%_actuación_vivo', '%_palabras_habladas', 
]

# Mostrar las primeras filas del DataFrame con los nuevos nombres de las columnas
print("Nuevas columnas:", df.columns)
print(df.head())
Columnas originales: Index(['track_name', 'artist(s)_name', 'artist_count', 'released_year',
       'released_month', 'released_day', 'in_spotify_playlists',
       'in_spotify_charts', 'streams', 'in_apple_playlists', 'in_apple_charts',
       'in_deezer_playlists', 'in_deezer_charts', 'in_shazam_charts', 'bpm',
       'key', 'mode', 'danceability_%', 'valence_%', 'energy_%',
       'acousticness_%', 'instrumentalness_%', 'liveness_%', 'speechiness_%'],
      dtype='object')
Nuevas columnas: Index(['Nombre', 'Artista', 'Artista_Contribuyentes', 'Año_lanzamiento',
       'mes_lanzamiento', 'Día_lanzamiento', 'Listas_Spotify',
       'Transmisiones_Spotify', 'Listas_Apple', 'Presencia_rango_Apple',
       'Listas_Deezer', 'Presencia_rango_Deezer', 'Listas_Shazam',
       'Anchura_Pixel', 'Latidos', 'Clave', 'Modo', '%_Baile', 'Positividad',
       '%_energía', '%_sonido_acústico', '%_contenido_instrumental',
       '%_actuación_vivo', '%_palabras_habladas'],
      dtype='object')
                                Nombre           Artista  \
0  Seven (feat. Latto) (Explicit Ver.)  Latto, Jung Kook   
1                                 LALA       Myke Towers   
2                              vampire    Olivia Rodrigo   
3                         Cruel Summer      Taylor Swift   
4                       WHERE SHE GOES         Bad Bunny   

   Artista_Contribuyentes  Año_lanzamiento  mes_lanzamiento  Día_lanzamiento  \
0                       2             2023                7               14   
1                       1             2023                3               23   
2                       1             2023                6               30   
3                       1             2019                8               23   
4                       1             2023                5               18   

   Listas_Spotify  Transmisiones_Spotify Listas_Apple  Presencia_rango_Apple  \
0             553                    147    141381703                     43   
1            1474                     48    133716286                     48   
2            1397                    113    140003974                     94   
3            7858                    100    800840817                    116   
4            3133                     50    303236322                     84   

   ...  Latidos Clave   Modo %_Baile  Positividad %_energía %_sonido_acústico  \
0  ...      125     B  Major      80           89        83                31   
1  ...       92    C#  Major      71           61        74                 7   
2  ...      138     F  Major      51           32        53                17   
3  ...      170     A  Major      55           58        72                11   
4  ...      144     A  Minor      65           23        80                14   

   %_contenido_instrumental  %_actuación_vivo  %_palabras_habladas  
0                         0                 8                    4  
1                         0                10                    4  
2                         0                31                    6  
3                         0                11                   15  
4                        63                11                    6  

[5 rows x 24 columns]