Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовой проект / Курсовая работа.docx
Скачиваний:
7
Добавлен:
04.12.2024
Размер:
485.8 Кб
Скачать

Приложение

Приложение А.

Блок кода 1. Импорт библиотек

# Импорт библиотек для дальнейшей работы с файлом1

import NumPy as np

import pandas as pd

import matplotlib.pyplot as plt

import seaborn as sns

# Создание DataFrame и запись БД в переменную df

df= pd.read_csv('Road Accident Data.csv')

# отображение первых пяти строк БД df.head(5)

Блок кода 2. Информация о БД

# вывод информации о фрейме данных df, включая количество записей, количество столбцов, типы данных каждого столбца и количество ненулевых значений.

df.info()

# вывод статистического описания числовых столбцов df.describe()

Приложение Б.

Блок кода 1. Удаление столбцов

# Удаление небалансированных столбцов.

df.drop(columns='Carriageway_Hazards', inplace=True)

Блок кода 2. Заполнение отсутствующих значений

# Заполняем отсутствующие значения наиболее часто встречающимися значениями.

most_freq_surface_conditions = df['Road_Surface_Conditions'].mode()[0]

df['Road_Surface_Conditions'].fillna(most_freq_surface_conditions, inplace=True)

most_freq_road_type = df['Road_Type'].mode()[0]

df['Road_Type'].fillna(most_freq_road_type, inplace=True)

# Заменяем значения в столбце "Accident_Severity".

df['Accident_Severity'].replace('Fetal', 'Fatal', inplace=True)

# Удаляем ненужные столбцы.

df.drop(columns=['Latitude', 'Longitude','Junction_Control','Local_Authority_(District)','Police_Force'], inplace=True)

Блок кода 3. Сопоставление состояния

# Сопоставление состояния дорожного покрытия с соответствующими погодными условиями для заполнения недостающих значений

conditions_mapping = {

    'Dry': 'Fine no high winds',

    'Wet or damp': 'Raining no high winds',

    'Snow': 'Snowing no high winds',

    'Frost or ice': 'Snowing + high winds'

}

df['Weather_Conditions'].fillna(df['Road_Surface_Conditions'].map(conditions_mapping), inplace=True)

df['Weather_Conditions'].fillna('Other', inplace=True)

Приложение В.

Блок кода 1. Происшествия по дням недели

# Подсчет количества происшествий по дням недели

day_counts = df['Day_of_Week'].value_counts()

# Преобразование в строку

result_str = ', '.join([f"{day}: {count}" for day, count in day_counts.items()])

# Вывод результата

print(result_str)

Блок кода 2. Происшествия по скоростному режиму

speed_counts = df['Speed_limit'].value_counts()

# Преобразование в строку

result_str = ', '.join([f"{speed}: {count}" for speed, count in speed_counts.items()])

# Вывод результата

print(result_str)

Блок кода 3. Происшествия по датам

date_min = df['Accident Date'].min()

date_max = df['Accident Date'].max()

print(f"Диапазон дат: от {date_min.date()} до {date_max.date()}")

# Подсчет количества происшествий по датам

date_counts = df['Accident Date'].value_counts().sort_index()

# Вывод результата

for date, count in date_counts.items():

    print(f"{date.date()}: {count}")

Приложение Г.

Блок кода 1. Диаграмма

# Указываем размерность фигур

plt.figure(figsize=(15, 5))

# Создание графика

sns.countplot(data=df, x='Road_Surface_Conditions', palette="YlGnBu", hue='Urban_or_Rural_Area')

# Редактирование легенды

plt.legend(bbox_to_anchor=(1, 1), loc='center', fontsize='small')

Блок кода 2. Круговая диаграмма

df['Day_of_Week'].value_counts().plot(kind='pie', autopct='%0.1f%%', explode=[0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1], shadow=True, colors=sns.color_palette("YlGnBu"))

plt.title('Percentage of Accidents by Day of the Week')

plt.ylabel(' ')

Блок кода 3. Линейная диаграмма

# Создание линейной диаграммы для расчета процента аварий на каждую дату

plt.figure(figsize=(15,5))

df['Accident Date'] = pd.to_datetime(df['Accident Date'])

date_counts = df['Accident Date'].value_counts(normalize=True) * 100

plt.figure(figsize=(10, 5))

sns.lineplot(x=date_counts.index, y=date_counts.values, color=sns.color_palette("YlGnBu")[2])

plt.title('Percentage of Accidents by Date')

plt.xlabel('Date')

plt.ylabel('Percentage of Accidents')

Соседние файлы в папке курсовой проект