Original size 736x981

Анализ творчества Лены Дель Рей

PROTECT STATUS: not protected
11

Введение

Проанализировать я хотела творчество музыкального исполнителя, так как мне показалось, что это очень интересные данные. Я сразу подумала, что было бы интересно узнать, какие слова в песнях чаще всего встречаются и узнать год, на который приходится пик карьеры исполнителя.

Почему Лана Дель Рей? Люблю её!

God is a woman.

big
Original size 600x600

Данные я нашла в свободном доступе на kaggle: https://www.kaggle.com/datasets/madroscla/lana-del-rey-genius-discography-released/data

Графики я выбрала наиболее подходящие под мой запрос, поэтому получились разнообразные: гистограммы, точечные, круговые диаграммы.

Этапы работы

Для стилизации графиков я решила воспользоваться пастельными цветами, так как знакомые с творчеством певицы знают, что это музыка, под которую буквально растворяешься, и этот выбор цветов, мне кажется, наиболее подходящим.

Первое, что я захотела узнать — это самую популярную песню. Результат меня не удивил, потому что композиция «Young and Beautiful» действительно легендарная.

top_songs = df[['song_title', 'song_page_views']].sort_values (by='song_page_views', ascending=False).head (10)

plt.figure (figsize=(10, 6)) sns.barplot (x=top_songs['song_page_views'], y=top_songs['song_title'], palette='pastel') plt.title ('Топ-10 самых популярных песен', fontsize=16) plt.xlabel ('Количество просмотров', fontsize=12) plt.ylabel ('Песня', fontsize=12) plt.grid (axis='x', linestyle='--', alpha=0.7) plt.show ()

Original size 2198x1106

Так как Лана в индустрии уже многие годы, мне стало интересно, в какой год она была наиболее продуктивна. Из гистограммы я выяснила, что это 2021 год.

df['song_release_date'] = pd.to_datetime (df['song_release_date'])

yearly_releases = df['song_release_date'].dt.year.value_counts ().sort_index ()

import matplotlib.pyplot as plt import seaborn as sns

plt.figure (figsize=(10, 6)) sns.barplot (x=yearly_releases.index, y=yearly_releases.values, palette='pastel') # Изменение палитры на 'pastel' plt.title ('Количество релизов по годам', fontsize=16) plt.xlabel ('Год', fontsize=12) plt.ylabel ('Количество релизов', fontsize=12) plt.xticks (rotation=45) plt.grid (axis='y', linestyle='--', alpha=0.7) plt.show ()

Original size 1884x1126

Опять же, благодаря тому, что Лана известна уже очень давно и, как по мне, не теряет свою актуальность и популярность, мне стало любопытно, в какой год она «взлетела», опираясь на количество просмотров.

yearly_views = df.groupby (df['song_release_date'].dt.year)['song_page_views'].sum ()

plt.figure (figsize=(10, 6)) sns.scatterplot ( x=yearly_views.index, y=yearly_views.values, s=100, color=sns.color_palette ('pastel')[0] ) plt.title ('Просмотры страницы песни на Genius по годам', fontsize=16) plt.xlabel ('Год', fontsize=12) plt.ylabel ('Общее количество просмотров', fontsize=12) plt.grid (axis='y', linestyle='--', alpha=0.7) plt.xticks (rotation=45) plt.show ()

Original size 1848x1158

Тексты — сильная сторона исполнительницы, поэтому узнать, какие слова чаще всего встречаются в ее произведениях, мне стало очень интересно. Изначально у меня не было фильтрации, и я получила в основном предлоги (and, in, out), меня это не устроило, и я поставила условие, чтобы слова состояли из 4 и более букв, таким образом, у меня получился достаточно описывающий музыку Ланы набор слов.

import re from collections import Counter import matplotlib.pyplot as plt import seaborn as sns

all_lyrics = ' '.join (df['song_lyrics'].apply (lambda x: ' '.join (eval (x)))) cleaned_lyrics = re.sub (r'[^\w\s]', '', all_lyrics).lower () words = cleaned_lyrics.split () filtered_words = [word for word in words if len (word) >= 4] word_counts = Counter (filtered_words) top_words = word_counts.most_common (5) labels = [word for word, _ in top_words] counts = [count for _, count in top_words]

plt.figure (figsize=(10, 6)) sns.barplot ( x=counts, y=labels, palette='pastel' ) plt.title ('Топ-5 самых часто встречающихся слов в песнях Ланы Дель Рей', fontsize=16) plt.xlabel ('Частота', fontsize=12) plt.ylabel ('Слово', fontsize=12) plt.grid (axis='x', linestyle='--', alpha=0.7) plt.show ()

Original size 1810x1090

Последнее, что я хотела узнать — это самые популярные жанры, в которых исполняет Лана. В круговой диаграмме я решила немного изменить оформление — с пастельных цветов на золотое, так как музыка Ланы у меня ассоциируется и с золотым тоже.

Original size 640x631

from collections import Counter all_tags = [tag for tags in df['song_tags'] for tag in eval (tags)] # Преобразуем строку в список genre_counts = Counter (tag for tag in all_tags if tag not in ['In English', 'USA'])

top_genres = genre_counts.most_common (3) labels = [genre for genre, _ in top_genres] sizes = [count for _, count in top_genres] gold_palette = ['#FFD700', '#FFC000', '#E6B800'] plt.figure (figsize=(8, 8)) plt.pie ( sizes, labels=labels, autopct='%1.1f%%', startangle=90, colors=gold_palette ) plt.title ('Топ-3 жанра песен Ланы Дель Рей', fontsize=16) plt.show ()

Original size 1274x1204

Вывод

Благодаря программированию и визуализации кода можно узнать очень много статистических данных о музыкальном исполнителе в моём случае, и о многих других не менее интересных вещах в случаях других студентов. Мне кажется, я буду пользоваться этими навыками, и если меня что-то заинтересует, то у меня появился ещё +1 метод анализа.

Блокнот с кодом и датасет

Анализ творчества Лены Дель Рей
11