домашка по анализу данных

The_Riko

Новорег

The_Riko

Новорег
Статус
Offline
Регистрация
31 Окт 2021
Сообщения
3
Лайки
0
Файл US_Accidents_March23.csv содержит столбцы:
ID, Source, Severity, Start_Time, End_Time, Start_Lat, Start_Lng, End_Lat, End_Lng, Distance(mi), Description, Street, City, County, State, Zipcode, Country, Timezone, Airport_Code, Weather_Timestamp, Temperature(F), Wind_Chill(F), Humidity(%), Pressure(in), Visibility(mi), Wind_Direction, Wind_Speed(mph), Precipitation(in), Weather_Condition, Amenity, Bump, Crossing, Give_Way, Junction, No_Exit, Railway, Roundabout, Station, Stop, Traffic_Calming, Traffic_Signal, Turning_Loop, Sunrise_Sunset, Civil_Twilight, Nautical_Twilight, Astronomical_Twilight.
Напиши код на питоне, который выполнит следующие задачи: Изучить распределение величин Visibility относительно (Severity). Cделать гистограмму, построение вариационного ряда, статистического ряда и построение гистограммы на основе группированного статистического ряда, функцию распределения величин. Определить 5 City с наибольшим количеством ID. Построить функции распределения Distance (mi), задействованного при аварии, в i-ом City из данного списка, i = 1, 2, …, 5
 

ChatGPT

Искусственный интеллект
Модератор

ChatGPT

Искусственный интеллект
Модератор
Статус
Offline
Регистрация
18 Апр 2023
Сообщения
79
Лайки
32
Чтобы выполнить поставленные задачи, следуем за приведенным ниже планом:

1. Загружаем данные из файла US_Accidents_March23.csv.
2. Исследуем распределение величин Visibility(mi) относительно Severity.
3. Строим гистограмму распределения видимости по категориям степени серьезности.
4. Создаем вариационный ряд и строим гистограмму на основе группированного статистического ряда.
5. Вычисляем и визуализируем функцию распределения величин видимости для каждой из категорий степени серьезности.
6. Определяем 5 городов (City) с наибольшим количеством записей (ID).
7. Строим функции распределения Distance(mi) для аварий в этих пяти городах.

Начнем с загрузки данных и импорта соответствующих библиотек:

Python:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from scipy.stats import cumfreq

# Загрузка данных
data = pd.read_csv('US_Accidents_March23.csv')

# Проверка загруженных данных
print(data.head())  # выводим первые пять строк для проверки

Далее следует анализ распределения Visibility(mi) в соответствии с Severity и построение гистограмм:

Python:
# Исследуем распределение видимости по серьезности аварий
for severity in sorted(data['Severity'].unique()):
    sns.histplot(data[data['Severity'] == severity]['Visibility(mi)'], kde=False, label=f'Severity {severity}')
plt.legend()
plt.title('Распределение величин Visibility(mi) для разных уровней Severity')
plt.xlabel('Visibility (mi)')
plt.ylabel('Частота')
plt.show()

Теперь переходим к созданию вариационного ряда и гистограммы группированного статистического ряда:

Python:
# Выберем данные одной из категорий Severity для упрощения
severity_data = data[data['Severity'] == 2]['Visibility(mi)']

# Вариационный ряд
var_series = sorted(severity_data.dropna())

# Строим гистограмму группированного статистического ряда
plt.hist(var_series, bins=20, alpha=0.7, label='Severity 2')
plt.title('Гистограмма видимости для Severity 2')
plt.xlabel('Visibility (mi)')
plt.ylabel('Частота')
plt.legend()
plt.show()

# Функция распределения
num_bins = 20
cum_freq = cumfreq(var_series, num_bins)
x_values = [cum_freq.lowerlimit + x * cum_freq.binsize for x in range(num_bins)]
cum_prob = cum_freq.cumcount / max(cum_freq.cumcount)
plt.plot(x_values, cum_prob, 'o-')
plt.title('Кумулятивная функция распределения видимости для Severity 2')
plt.xlabel('Visibility (mi)')
plt.ylabel('Кумулятивная вероятность')
plt.grid(True)
plt.show()

Теперь найдем пять городов с наибольшим количеством аварий:

Python:
# Определение 5 городов с наибольшим количеством ID
top_cities = data['City'].value_counts().head(5)
print(f'Топ 5 городов по количеству аварий: \n{top_cities}')

И, наконец, строим функции распределения Distance(mi) для аварий в пяти топовых городах:

Python:
# Построение функций распределения для Distance(mi) в топовых 5 городах
for city in top_cities.index:
    city_data = data[(data['City'] == city) & data['Distance(mi)'].notnull()]['Distance(mi)']
    city_values, city_base = np.histogram(city_data, bins=20)
    city_cumulative = np.cumsum(city_values)
    plt.plot(city_base[:-1], city_cumulative / city_cumulative[-1], label=city)

plt.title('Кумулятивная функция распределения Distance(mi) для топ 5 городов')
plt.xlabel('Distance (mi)')
plt.ylabel('Кумулятивная вероятность')
plt.legend(loc='upper right')
plt.show()

Этот код предоставляет основной анализ и визуальное представление данных, однако будьте готовы к необходимости адаптировать код в соответствии с реальным содержанием файла и типом данных. Убедитесь, что пути к файлам корректны и что у вас установлены нужные библиотеки (pandas, seaborn, matplotlib и scipy).
 
Сверху