Análise Exploratória

visualization

Módulo de Visualização

Esse módulo contém funções responsáveis por gerar gráficos a partir da análise de dataframes sobre musicas em um formato específico. O formato do dataframe deve ser igual ao gerado pelo módulo database nesse mesmo repositório e lido pela função create_dataframe no arquivo principal (main.py).

visualization.albuns_awards_plot(dataframe)

Recebe um dataframe e cria e plota um gráfico de barras para a quantidade de prêmios dos álbuns mais premiados.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com a coluna Awards.

Returns

Gráfico de barras para a quantidade de prêmios dos álbuns mais premiados em uma pasta separada

Return type

None

visualization.common_words_by_album_plot(dataframe)

Recebe um dataframe e cria uma nuvem de palavras com as palavras mais comuns nos títulos dos álbuns.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com a coluna Album Name.

Returns

Nuvem de palavras com as palavras mais comuns nos títulos dos álbuns.

Return type

None

visualization.common_words_by_lyrics_plot(dataframe)

Recebe um dataframe e cria uma nuvem de palavras com as palavras mais comuns nas músicas.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com a coluna Track Lyrics.

Returns

Nuvem de palavras com as palavras mais comuns nas músicas.

Return type

None

visualization.common_words_by_song_plot(dataframe)

Recebe um dataframe e cria uma nuvem de palavras com as palavras mais comuns nos títulos das faixas.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com a coluna Track Name.

Returns

Nuvem de palavras com as palavras mais comuns nos títulos das faixas.

Return type

None

visualization.duration_popularity_plot(dataframe)

Recebe um dataframe e cria e plota um scatterplot que associa duração e popularidade.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com com a coluna Duration Seconds e Popularity

Returns

Scatterplot que associa duração e popularidade em uma pasta separada.

Return type

None

visualization.least_listened_by_album_plot(dataframe)

Recebe um dataframe e cria e plota um gráfico de barras para a popularidade das músicas menos ouvidas por álbum.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com Album Name como parte do multi index e com a coluna Popularity.

Returns

Gráfico de barras para a popularidade das músicas menos ouvidas por álbum em uma pasta separada.

Return type

None

visualization.least_listened_plot(dataframe)

Recebe um dataframe e cria e plota um gráfico de barras para a popularidade das músicas menos ouvidas.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com coluna Popularity.

Returns

Gráfico de barras para a popularidade das músicas menos ouvidas em uma pasta separada.

Return type

None

visualization.longest_by_album_plot(dataframe)

Recebe um dataframe e cria e plota um gráfico de barras para a duração das músicas mais longas por álbum

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com Album Name como parte do multi index e com a coluna Duration.

Returns

Gráfico de barras para a popularidade das músicas menos ouvidas por álbum em uma pasta separada.

Return type

None

visualization.longest_plot(dataframe)

Recebe um dataframe e cria e plota um gráfico de barras para a duração das músicas mais longas.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com coluna Duration.

Returns

Gráfico de barras para a duração das músicas mais longas em uma pasta separada

Return type

None

visualization.most_listened_by_album_plot(dataframe)

Recebe um dataframe e cria e plota um gráfico de barras para a popularidade das músicas mais ouvidas por álbum.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com Album Name como parte do multi index e com a coluna Popularity.

Returns

Gráfico de barras para a popularidade das músicas mais ouvidas por álbum em uma pasta separada.

Return type

None

visualization.most_listened_plot(dataframe)

Recebe um dataframe e cria e plota um gráfico de barras para a popularidade das músicas mais ouvidas.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com coluna Popularity.

Returns

Gráfico de barras para a popularidade das músicas mais ouvidas em uma pasta separada.

Return type

None

visualization.shortest_by_album_plot(dataframe)

Recebe um dataframe e cria e plota um gráfico de barras para a duração das músicas mais curtas por álbum.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com Album Name como parte do multi index e com a coluna Duration.

Returns

Gráfico de barras para a duração das músicas mais curtas por álbum em uma pasta separada.

Return type

None

visualization.shortest_plot(dataframe)

Recebe um dataframe e cria e plota um gráfico de barras para a duração das músicas mais curtas.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com coluna Duration.

Returns

Gráfico de barras para a duração das músicas mais curtas em uma pasta separada.

Return type

None

exploratory_analysis

Módulo de análise exploratória

Esse módulo contém funções responsáveis por responder perguntas a partir da análise de dataframes em um formato específico. O formato do dataframe deve ser igual ao gerado pelo módulo database nesse mesmo repositório e lido pela função create_dataframe.

exploratory_analysis.album_in_lyrics(dataframe)

Recebe um dataframe e retorna os 3 álbuns que mais aparecem nas letras das músicas.

Parameters

dataframe (pandas.core.frame.DataFrame) – Dataframe com Album Name como parte do multi index e com a coluna Track Lyrics.

Returns

Dataframe com os 3 álbuns que mais aparecem nas letras das músicas.

Return type

pandas.core.frame.DataFrame

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.albuns_awards(dataframe)

Recebe um dataframe no formato pandas e retorna um dataframe com as 3 álbuns mais premiados e suas quantidades de prêmios.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com multi index e com coluna Awards.

Returns

Dataframe com os álbuns mais premiados e a quantidade de prêmios recebidos.

Return type

pandas.core.frame.DataFrame

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.common_gender(dataframe)

Recebe um dataframe e retorna uma lista com tuplas contendo os gêneros mais frequentes e suas respectivas frequências na discografia (quantos álbuns possuem determinado gênero ).

Parameters

dataframe (pandas.core.frame.DataFrame) – Dataframe com coluna Genre.

Returns

Lista que contém 3 tuplas para representar os 3 gêneros mais frequêntes e suas frequências.

Return type

list

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.common_words_by_album(dataframe)

Recebe um dataframe e retorna as 50 palavras mais comuns nos títulos dos álbuns.

Parameters

dataframe (pandas.core.frame.DataFrame) – Dataframe com multi index.

Returns

Lista com tuplas contendo as palavras mais comuns nos títulos dos álbuns e suas frequências.

Return type

list

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.common_words_by_lyrics(dataframe)

Recebe um dataframe e retorna as 50 palavras mais comuns nas letras das músicas.

Parameters

dataframe (pandas.core.frame.DataFrame) – Dataframe com multi index.

Returns

Lista com tuplas contendo as palavras mais comuns nas letras das músicas e suas frequências.

Return type

list

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.common_words_by_song(dataframe)

Recebe um dataframe e retorna as 50 palavras mais comuns nos títulos das músicas.

Parameters

dataframe (pandas.core.frame.DataFrame) – Dataframe com multi index.

Returns

Lista com tuplas contendo as palavras mais comuns nos títulos das músicas e suas frequências.

Return type

list

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.common_words_lyrics_album(dataframe)

Recebe um dataframe e retorna as 50 palavras mais comuns nas letras das músicas de cada álbum.

Parameters

dataframe (pandas.core.frame.DataFrame) – Dataframe com Album Name como parte do multi index e com a coluna Track Lyrics.

Returns

Série com as 50 palavras mais comuns nas letras das músicas de cada álbum.

Return type

pandas.core.series.Series

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.duration_popularity(dataframe)

Recebe um dataframe no formato pandas e retorna um float com a correlação de pearson entre duração e popularidade.

Parameters

dataframe (pandas.core.frame.DataFrame) – Dataframe com as colunas Duration Seconds e Popularity.

Returns

Correlação de pearson entre as colunas Duration Seconds e Popularity.

Return type

numpy.float64

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.explicit_popularity(dataframe)

Recebe um dataframe e retorna a popularidade média de músicas explícitas e não explícitas.

Parameters

dataframe (pandas.core.frame.DataFrame) – Dataframe com colunas Explicit e Popularity.

Returns

Dataframe com as popularidades médias das músicas explícitas e não explícitas.

Return type

pandas.core.frame.DataFrame

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.least_listened(dataframe)

Recebe um dataframe e o retorna com um filtro para indicar as 3 músicas menos ouvidas.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com coluna Popularity.

Returns

DataFrame com as 3 músicas menos ouvidas, caso haja mais músicas com a mesma popularidade, todas serão retornadas..

Return type

pandas.core.frame.DataFrame

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.least_listened_by_album(dataframe)

Recebe um dataframe e o retorna com um filtro para indicar as 3 músicas menos ouvidas por álbum.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com Album Name como parte do multi index e com coluna Popularity.

Returns

DataFrame com as 3 músicas menos ouvidas por álbum, caso haja mais músicas com a mesma popularidade, todas serão retornadas.

Return type

pandas.core.frame.DataFrame

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.longest(dataframe)

Recebe um dataframe no formato pandas e retorna um dataframe com as 3 músicas mais longas.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com coluna Duration Seconds.

Returns

DataFrame com 3 músicas mais longas, caso haja mais músicas com a mesma duração, todas serão retornadas.

Return type

pandas.core.frame.DataFrame

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.longest_by_album(dataframe)

Recebe um dataframe e o retorna com um filtro para indicar as 3 músicas mais longas por álbum. :param dataframe: DataFrame com Album Name como parte do multi index e com coluna Duration. :type dataframe: pandas.core.frame.DataFrame :return: DataFrame com as 3 músicas mais longas por álbum, caso haja mais músicas com a mesma duração, todas serão retornadas. :rtype: pandas.core.frame.DataFrame

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.most_listened(dataframe)

Recebe um dataframe e o retorna com um filtro para indicar as 3 músicas mais ouvidas.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com coluna Popularity.

Returns

DataFrame com as 3 músicas mais ouvidas, caso haja mais músicas com a mesma popularidade, todas serão retornadas.

Return type

pandas.core.frame.DataFrame

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.most_listened_by_album(dataframe)

Recebe um dataframe e o retorna com um filtro para indicar as 3 músicas mais ouvidas por álbum. :param dataframe: DataFrame com Album Name como parte do multi index e com coluna Popularity. :type dataframe: pandas.core.frame.DataFrame :return: DataFrame com as 3 músicas mais ouvidas por álbum, caso haja mais músicas com a mesma popularidade, todas serão retornadas. :rtype: pandas.core.frame.DataFrame

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

Recebe um dataframe e retorna o álbum mais popular com base na popularidade média de suas músicas.

Parameters

dataframe (pandas.core.frame.DataFrame) – Dataframe com Album no multi index e com coluna Popularity.

Returns

Dataframe com os álbuns mais populares e suas popularidades.

Return type

pandas.core.frame.DataFrame

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.remove_stop_words(word_list)

Remove de uma lista de palavras, palavras pouco significativas da língua inglesa. :param word_list: Lista com palavras a serem analisadas :type word_list: list :return: Lista com palavras já filtradas :rtype: list

exploratory_analysis.shortest(dataframe)

Recebe um dataframe no formato pandas e retorna um dataframe com as 3 músicas mais curtas.

Parameters

dataframe (pandas.core.frame.DataFrame) – DataFrame com coluna Duration Seconds.

Returns

DataFrame com 3 músicas mais curtas, caso haja mais músicas com a mesma duração, todas serão retornadas.

Return type

pandas.core.frame.DataFrame

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.shortest_by_album(dataframe)

Recebe um dataframe e o retorna com um filtro para indicar as 3 músicas mais curtas por álbum. :param dataframe: DataFrame com Album Name como parte do multi index e com coluna Duration Seconds. :type dataframe: pandas.core.frame.DataFrame :return: DataFrame com as 3 músicas mais curtas por álbum, caso haja mais músicas com a mesma popularidade, todas serão retornadas. :rtype: pandas.core.frame.DataFrame

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.song_in_lyrics(dataframe)

Recebe um dataframe e retorna as 3 canções que mais aparecem nas letras das músicas.

Parameters

dataframe (pandas.core.frame.DataFrame) – Dataframe com Track Name como parte do multi index e com a coluna Track Lyrics.

Returns

Dataframe com as 3 músicas que mais aparecem nas letras das músicas.

Return type

pandas.core.frame.DataFrame

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

exploratory_analysis.unique_values(array)

Recebe uma lista com algumas strings contendo itens separados por / e retorna um array com valores únicos dos itens.

Parameters

array (list) – Lista com alguns itens sendo palavras separadas por /.

Returns

Array com todas as palavras contidas no array de input, incluindo as separadas por /. Toda palavra só aparecerá uma única vez.

Return type

np.ndarray

Note

Se alguma coluna estiver vazia, análise será afetada e será informado pelo console!

dataframe_reader

Módulo de leitura do csv e criação do dataframe Nesse módulo estão contidas as funções que validam arquivos csv garantindo que eles contenham todas as informações para a ánalise de dados, caso eles estejam de acordo com o estabelecido, é criado um dataframe no formato exigido.

dataframe_reader.add_awards(original_dataframe, path_album_awards)

Recebe um dataframe com todas as colunas necessárias para a análise e recebe o caminho para um arquivo csv com duas colunas: Album Name e Awards, que contém os álbuns premiados e seus respectivos prêmios.

Parameters
  • original_dataframe (pandas.core.frame.DataFrame) – Dataframe com colunas necessárias para a análise exploratória

  • path_album_awards (str) – Arquivo .csv com os álbuns e seus prêmios.

Returns

Dataframe com as informações do primeiro parâmetro da função acrescido de uma coluna Awards com os prêmios dos álbuns.

Return type

pandas.core.frame.DataFrame

dataframe_reader.create_final_dataframe(dataframe)

Modifica um dataframe para que ele possua um multi index a partir das colunas pedidas: Album Name e Track Name e para que exista uma nova coluna chamada Duration Seconds.

Parameters

dataframe (pandas.core.frame.DataFrame) – Dataframe com todas as informações necessárias e sem multi index

Returns

Dataframe com todas as informações do dataframe utilizado como parâmetro da função e com multi index composto por: Album Name e Track Name, respectivamente. Também adiciona a coluna Duration Seconds.

Return type

pandas.core.frame.DataFrame

dataframe_reader.is_valid(path_artist_info)

Essa função checa se o caminho fornecido para um arquivo csv é válido e se esse arquivo possui todas as colunas necessárias para a análise de dados. Caso todos os requisitos sejam atendidos, a função retorna um dataframe com as informações do arquivo

Parameters

path_artist_info (str) – Arquivo .csv com as informações do artista

Raises

KeyError – Levanta um KeyError caso alguma coluna exigida não seja encontrada

Returns

Retorna um dataframe com as informações do arquivo .csv caso o arquivo cumpra as exigências.

Return type

pandas.core.frame.DataFrame

dataframe_reader.time_to_seconds(object)

Essa função converte um objeto no formato mm:ss e o transforma para tempo em segundos.

Parameters

object (object (pandas)) – Objeto presente em uma coluna dataframe formatado como mm:ss que representa a duração da música

Returns

Objeto convertido para int, representando a duração da música em segundos.

Return type

int