Проект 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