Вступление
Я изучаю кодирование Python и науку о данных, потому что я заинтересован в применении этих навыков для работы с более крупными наборами данных и анализ таких данных, чтобы сделать более информированные, более информированные и своевременные операционные и политические решения в области финансов и экономики.
Будучи учеником, зачисленным в Bootcamp Data Science в Flatiron School, я наслаждаюсь изучением этих новых навыков и уже нахожу ценность в их применении для решения реальных вопросов и проблем.
Бизнес -проблема
В моем первом проекте рассматривается киноиндустрия для клиента, который заинтересован в вступлении в бизнес. Описательный анализ данных показывает, что киноиндустрия является прибыльной, но существует значительная разновидности в производительности среди фильмов и производственных студий. Клиент может использовать этот анализ, чтобы понять ключевые тенденции в киноиндустрии, определить его основных конкурентов и определить типы фильмов, которые они будут создавать. Этот анализ также служит базовой линией для более глубоких погружений в киноиндустрии.
Данные и методология
Проект изучал более десяти наборов данных, связанных с тем, чем на несколько десяти, из четырех источников. За последние 20 лет файлы данных предоставляют широкий спектр информации о доходах от кассовых сборов отдельных фильмов, бюджетов, жанров, а также о производственных студиях и ассоциированных актеров и членах экипажа.
Проект применяет исследовательский анализ данных и рассматривает тенденции ключевых метрик с течением времени. Это дает проницательный обзор эволюции производительности киноиндустрии. Несколько файлов данных содержат полезную информацию, которая дополняет другие файлы, в то время как некоторые данные были дублированы. Это требовало обширной очистки и соединения наборов данных. У меня есть опыт подготовки и анализа наборов данных, в основном в Excel; Но я никогда не работал с таким большим количеством больших файлов одновременно и не делал это с кодом Python. Было интересно заняться этим по -новому, и мне особенно понравилось анализировать данные и генерировать выход графиков, который представляет результаты.
График с Python
Как сделать график с двойными оси Y
Одним из первых выводов является то, что в данных существуют большие выбросы, и для большинства индикаторов существуют заметные различия в фильмах. Учитывая эти характеристики, я хотел изучить валовой доход и рентабельность инвестиций в топ -музыкант фильмов (то есть те, которые в 99 -м процентиле). Разумная гипотеза заключается в том, что фильмы с самым высоким валовым доходом будут среди фильмов с самым высоким ROI. Это не вариант. Чтобы показать это чисто, я заложил валовой доход и рентабельность инвестиций в лучшие фильмы по двум разным точкам.
Диаграмма показывает, что лучшие кассовые фильмы прибыльны, но эти фильмы не обязательно имеют самый высокий рентабельность инвестиций. Производительность офиса блокбастера не приводит к более высокой инфекции ROI, подразумевая, что контроль затрат является важным фактором, определяющим прибыль.
#Create figure fig, ax1 = plt.subplots(figsize=(14,9)) #Assign chart variables title = df['title'] ww_gross = df['worldwide_gross_m'] ROIp = df['ROIpct'] #Identify two y-axes using the same x-axis (i.e., the second (left) y-axis will use the same x-axis ax2 = ax1.twinx() #Create standard bar chart of gross revenue on the left y-axis ax1.bar(title, ww_gross, color='lightsteelblue') #Add line plot of ROI to same chart on the right y-axis. Set markers to '.' and remove line. ax2.plot(title, ROIp, marker = '.', markersize = 12, color='navy', linestyle='None') #X-axis label formatting: rotate and center ax1.set_xticklabels(title, rotation=90, ha='center') #Y-axis label formatting: Set labels and change colors of labels to match chart content ax1.set_ylabel('Gross Revenue (Millions $)', color='gray') ax2.set_ylabel('ROI (Percent)', color='navy') #Y-axis tick marks: Set min, max, intervals ax1.set_yticks(np.arange (0, 3250, 250)) ax2.set_yticks(np.arange (0, 3250, 250)) plt.show()
Как сделать сложенную процентную барную карту
Другим ценным выводом из данных является доля прибыльных фильмов, а не убыточных. Мне было любопытно посмотреть, какой процент фильмов подпадает под давлением диапазонов прибыльности – для этого я решил сделать сложенную процентную диаграмму. Этот анализ показывает, что киноиндустрия является прибыльным, но сложным бизнесом. Сорок процентов фильмов генерируют здоровую доходность инвестиций, превышающих 100%, в то время как 25%генерируют положительную, но более низкую доходность ниже 100%. Примечательно, что 35% фильмов теряют деньги.
После некоторого первоначального устранения неполадок в моем коде я подошел к этому следующим образом:
#Prepare data for stacked 100% bar chart. Create df grouped by year and count of ROI buckets. Convert count of ROI buckets to percent of total count. df = ((df_roi.groupby(['year', 'ROI_buckets'])['ROI_buckets'].count() /df_roi.groupby(['year'])['ROI_buckets'].count()))*100 #Set color map and select number of colors from color map viridis = cm.get_cmap('viridis', 9) #Create stacked bar chart ax = df.unstack().plot.bar(stacked = True, figsize=(14,10), color=viridis.colors) #Set title, x-label, y-label ax.set_title('ROI - Movies in 90th percentile', fontsize = 18) ax.set_xlabel('Year', fontsize = 14) ax.set_ylabel('Percent of movies (%)', fontsize = 14) #Set y-axis ticks: min, max, interval ax.yaxis.set_ticks(np.arange(0, 110, 10) #Set tick marks on right side. ax.tick_params(labeltop=False, labelright=True) #Reverse legend order and set legend location handles, labels = ax.get_legend_handles_labels() ax.legend(reversed(handles), reversed(labels), loc='center left', bbox_to_anchor=(1.05,0.5)) plt.show()
Заключительное понимание
С нетерпением жду продолжения изучения и поделиться данными о данных о данных-более!
Оригинал: “https://dev.to/magali/charting-with-code-250j”