Проект Data Science для начинающих

У всех разные взгляды на автомобили. Некоторые предпочитают роскошь. Некоторые предпочитают ретро-автомобили. Некоторые предпочитают автомобили исходя из их экономического состояния. Исходя из всех этих факторов, сколько моделей автомобилей разных компаний доступно для индийцев?

Давайте проведем анализ по этому поводу. В этой статье я собираюсь провести анализ данных различных автомобильных компаний, которые продают автомобили в Индии. Начнем с чашки кофе.

Код с анализом

Вы можете выполнить задачу в Google Colab или Jupyter Notebook. Ссылка на набор данных, используемый в этом проекте, приведена в конце статьи.

  • Импортируйте следующие библиотеки
#for mathematical computationimport numpy as np
import pandas as pd
import scipy.stats as stats#for data visualizationimport seaborn as sns
import matplotlib.pyplot as plt
import plotly
import plotly.express as px
from matplotlib.pyplot import figure% matplotlib inline
  • Давайте загрузим и взглянем на данные. Загрузите набор данных и добавьте его в путь. После этого визуализируйте первые 5 данных набора данных.
df = pd.read_csv("/content/cars_ds_final.csv", encoding='latin-1')
df.head()

Запустите ячейку, вы увидите что-то вроде изображения выше на рабочем экране.

  • Получите дополнительную информацию о данных
df.describe()
df.info()
df[df.isnull()].count()
df[df.duplicated()].count()

Запустите приведенные выше строки кода в отдельной ячейке, и вы получите некоторую информацию о типе данных.

df.describe () расскажет вам о среднем, медиане, режиме и многом другом о числовом значении данных набора данных.

df.info () расскажет вам об атрибуте данных

Функция df.isnull () count подсчитает все нулевые значения, присутствующие в наборе данных.

df.duplicated () count отобразит все повторяющиеся данные, присутствующие в наборе данных.

  • Очистка данных
df=df.fillna('')
df=df.replace(' ', '')
df['Ex-Showroom_Price']=df['Ex-Showroom_Price'].str.replace(',','')
df['Ex-Showroom_Price']=df['Ex-Showroom_Price'].str.replace('Rs.','')
df['Displacement']=df['Displacement'].str.replace('cc','')

Мы хотим отобразить только числовое значение Ex-Showroom Price и Displacement автомобиля. Я также попытался очистить столбец мощности набора данных. Но это немного беспокойно, потому что данные довольно смешаны с ценностью. Вы заметите это, когда пройдете через столбец мощности.

Теперь столбцы Displacement и Ex-Showroom price полностью числовые.

Вставьте следующий код в следующую ячейку и запустите ячейку.

df.describe()

Появятся две отдельные колонки Ex-Showroom Price и Displacement. В каждом столбце будет показано среднее значение, медиана и режим соответствующих данных.

  • Корреляция
df[['Cylinders', 'Valves_Per_Cylinder', 'Doors', 'Seating_Capacity', 'Number_of_Airbags', 'Ex-Showroom_Price', 'Displacement']] = df[['Cylinders', 'Valves_Per_Cylinder', 'Doors', 'Seating_Capacity', 'Number_of_Airbags', 'Ex-Showroom_Price', 'Displacement']].apply(pd.to_numeric)
f,ax = plt.subplots(figsize=(14,10))
sns.heatmap(df.corr(), annot=True, fmt=".2f", ax=ax)
plt.show()

Цена Ex-Showroom положительно коррелирует с Displacement.

Цена вне выставочного зала положительно связана с количеством цилиндров. Это означает, что чем больше количество цилиндров, тем больше цена на выходе из выставочного зала.

Чем больше в автомобиле цилиндров, тем больше будет его рабочий объем. Вообще говоря, чем больше рабочий объем двигателя, тем большую мощность он может создать.

Количество дверей сильно отрицательно коррелирует с Displacement. В этом есть смысл, правда?

Вы можете проанализировать больше так.

  • Данные о бренде

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

df[df.Make =='Tata'].tail()

Я использовал функцию tail (), чтобы посмотреть последние 5 данных.

  • Бренды с наибольшим количеством автомобилей на индийском рынке
fig = plt.figure(figsize = (10,10))
ax = fig.subplots()
df.Make.value_counts().plot(ax=ax, kind='pie')
ax.set_ylabel("")
ax.set_title("Top Car Making Companies in India")
plt.show()

У Maruti Suzuki больше вариантов автомобилей, чем у любой другой компании в Индии.

В пятерку ведущих компаний, предлагающих более чем варианты автомобилей в Индии, входят Maruti Suzuki, Hyundai, Mahindra, Tata и Toyota.

Варианты спорткаров очень низкие

  • Автомобили по типу кузова
plt.figure(figsize=(16,7))
sns.countplot(data=df, y='Body_Type',alpha=.6,color='blue')
plt.title('Cars by car body type',fontsize=20)
plt.xticks(fontsize=14)
plt.yticks(fontsize=14)
plt.xlabel('')
plt.ylabel('');

Индийский рынок благоприятен для внедорожников, седанов и хэтчбеков.

  • График типа кузова и цен вне выставочного зала
PriceByType = df.groupby('Body_Type').sum().sort_values('Ex-Showroom_Price', ascending=False)
PriceByType = PriceByType.reset_index()
px.bar(x='Body_Type', y ="Ex-Showroom_Price", data_frame=PriceByType)

Если мы повысим цену на все внедорожники из выставочного зала, представленные в наборе данных, то это будет почти 2 млрд индийских рупий.

Спорткары минимальный скачок в графике

  • Подсчет автомобилей по типу топлива двигателя
fig = plt.figure(figsize = (10,10))
ax = fig.subplots()
df.Fuel_Type.value_counts().plot(ax=ax, kind='pie')
ax.set_ylabel("")
ax.set_title("Cars Count by Engine Fuel Type")
plt.show()

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

Эти данные изменятся, потому что в Индию прибыли электромобили.

  • Связь между ценой и перемещением
plt.figure(figsize=(10,8))
sns.scatterplot(data=df, x='Displacement', y='Ex-Showroom_Price',hue='Body_Type',palette='viridis',alpha=.89, s=120 );
plt.xticks(fontsize=13);
plt.yticks(fontsize=13)
plt.xlabel('power',fontsize=14)
plt.ylabel('price',fontsize=14)
plt.title('Relation between Displacement and price',fontsize=20);

Эти данные не требуют пояснений. Цена и мощность спорткара самые высокие.

  • Постройте парные отношения
sns.pairplot(df,vars=[ 'Displacement', 'Ex-Showroom_Price'], hue= 'Fuel_Type', palette=sns.color_palette('magma'),diag_kind='kde',height=2, aspect=1.8);

Визуализация парного графика пригодится, когда вы хотите перейти к исследовательскому анализу данных («EDA»). Парный график визуализирует данные, чтобы найти взаимосвязь между ними, где переменные могут быть непрерывными или категориальными.

  • Трехмерный график рабочего объема, цены и топливного бака
fig = px.scatter_3d(df, x='Displacement', z='Ex-Showroom_Price', y='Fuel_Type',color='Make',width=800,height=750)
fig.update_layout(showlegend=True)
fig.show();

Это выглядит довольно круто, потому что данные выровнены по их типу топлива.

Ну вот и все.

Поздравляю, вы проанализировали набор данных о выбросах Co2. Вы можете копать и сами. Потому что с данными можно многое сделать. И полученная вами информация ценна.

База данных и полный исходный код Github находятся здесь.

Другие проекты в области науки о данных

Самые популярные кибернетические утечки данных (2004–2021 гг.): Анализ и визуализация данных

Визуализация и анализ данных средних статей с использованием Python

Визуализация и анализ данных Spotify с использованием Python

Анализ данных IPL (2008–2020 гг.) С использованием Python

Анализ данных Zomato с помощью Jupyter Notebook

Анализ данных и визуализация выбросов Co2 в разных странах

Здравствуйте, меня зовут Рохит Кумар Тхакур. Я открыт для фриланса. Я создаю собственные проекты React и в настоящее время работаю над Python Django. Не стесняйтесь обращаться ко мне по адресу ([email protected])

Больше контента на plainenglish.io