
Введение
Проанализировать я хотела творчество музыкального исполнителя, так как мне показалось, что это очень интересные данные. Я сразу подумала, что было бы интересно узнать, какие слова в песнях чаще всего встречаются и узнать год, на который приходится пик карьеры исполнителя.
Почему Лана Дель Рей? Люблю её!
God is a woman.

Данные я нашла в свободном доступе на 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 ()
Так как Лана в индустрии уже многие годы, мне стало интересно, в какой год она была наиболее продуктивна. Из гистограммы я выяснила, что это 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 ()
Опять же, благодаря тому, что Лана известна уже очень давно и, как по мне, не теряет свою актуальность и популярность, мне стало любопытно, в какой год она «взлетела», опираясь на количество просмотров.
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 ()
Тексты — сильная сторона исполнительницы, поэтому узнать, какие слова чаще всего встречаются в ее произведениях, мне стало очень интересно. Изначально у меня не было фильтрации, и я получила в основном предлоги (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 ()
Последнее, что я хотела узнать — это самые популярные жанры, в которых исполняет Лана. В круговой диаграмме я решила немного изменить оформление — с пастельных цветов на золотое, так как музыка Ланы у меня ассоциируется и с золотым тоже.
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 ()
Вывод
Благодаря программированию и визуализации кода можно узнать очень много статистических данных о музыкальном исполнителе в моём случае, и о многих других не менее интересных вещах в случаях других студентов. Мне кажется, я буду пользоваться этими навыками, и если меня что-то заинтересует, то у меня появился ещё +1 метод анализа.
Блокнот с кодом и датасет