Наука о данных — подготовка данных
Прежде чем анализировать данные, Data Scientist должен извлечь данные и сделать их чистыми и ценными.
Извлечение и чтение данных с помощью Pandas
Прежде чем данные можно будет проанализировать, их необходимо импортировать/извлечь.
В приведенном ниже примере мы покажем вам, как импортировать данные с помощью Pandas в Python.
Мы используем read_csv()
функцию для импорта CSV-файла с данными о работоспособности:
Пример
import pandas as pd
health_data = pd.read_csv("data.csv", header=0, sep=",")
print(health_data)
Объяснение примера
- Импортируйте библиотеку Pandas
- Назовите фрейм данных как
health_data
. header=0
означает, что заголовки для имен переменных должны быть найдены в первой строке (обратите внимание, что 0 означает первую строку в Python)sep=","
означает, что "," используется в качестве разделителя между значениями. Это связано с тем, что мы используем тип файла .csv (значения, разделенные запятыми).
Совет. Если у вас большой CSV-файл, вы можете использовать эту
head()
функцию, чтобы отобразить только верхние 5 строк:
Пример
import pandas as pd
health_data = pd.read_csv("data.csv", header=0, sep=",")
print(health_data.head())
Очистка данных
Посмотрите на импортированные данные. Как видите, данные «грязные» с неправильными или незарегистрированными значениями:
- Есть пустые поля
- Средний пульс 9 000 невозможен
- 9 000 будет считаться нечисловым из-за разделителя пробелов.
- Одно наблюдение максимального пульса обозначается как «AF», что не имеет смысла.
Итак, мы должны очистить данные, чтобы выполнить анализ.
Удалить пустые строки
Мы видим, что нечисловые значения (9 000 и AF) находятся в тех же строках с пропущенными значениями.
Решение: мы можем удалить строки с отсутствующими наблюдениями, чтобы решить эту проблему.
Когда мы загружаем набор данных с помощью Pandas, все пустые ячейки автоматически преобразуются в значения «NaN».
Таким образом, удаление ячеек NaN дает нам чистый набор данных, который можно проанализировать.
Мы можем использовать dropna()
функцию для удаления NaN. axis=0 означает, что мы хотим удалить все строки со значением NaN:
Пример
health_data.dropna(axis=0,inplace=True)
print(health_data)
Результатом является набор данных без строк NaN:
Категории данных
Для анализа данных нам также необходимо знать типы данных, с которыми мы имеем дело.
Данные можно разделить на три основные категории:
- Числовой — содержит числовые значения. Можно разделить на две категории:
- Дискретный: Числа считаются «целыми». Пример: Вы не можете тренироваться 2,5 занятия, это либо 2, либо 3
- Непрерывный: Числа могут иметь бесконечную точность. Например, вы можете спать 7 часов 30 минут и 20 секунд или 7,533 часа.
- Категориальный — содержит значения, которые нельзя сравнивать друг с другом. Пример: цвет или тип тренировки
- Порядковый номер — содержит категориальные данные, которые можно сравнивать друг с другом. Пример: школьные оценки, где A лучше, чем B, и так далее.
Зная тип ваших данных, вы сможете узнать, какую технику использовать при их анализе.
Типы данных
Мы можем использовать info()
функцию для перечисления типов данных в нашем наборе данных:
Пример
print(health_data.info())
Результат:
Мы видим, что этот набор данных имеет два разных типа данных:
- Поплавок64
- Объект
Здесь мы не можем использовать объекты для вычислений и анализа. Мы должны преобразовать объект типа в float64 (float64 — это десятичное число в Python).
Мы можем использовать astype()
функцию для преобразования данных в float64.
В следующем примере «Average_Pulse» и «Max_Pulse» преобразуются в данные типа float64 (другие переменные уже имеют тип данных float64):
Пример
health_data["Average_Pulse"]
= health_data['Average_Pulse'].astype(float)
health_data["Max_Pulse"] =
health_data["Max_Pulse"].astype(float)
print
(health_data.info())
Результат:
Теперь в наборе данных есть только типы данных float64.
Анализ данных
Когда мы очистили набор данных, мы можем начать анализ данных.
Мы можем использовать describe()
функцию в Python для суммирования данных:
Пример
print(health_data.describe())
Результат:
Продолжительность | Средний_пульс | Max_Pulse | Calorie_Burnage | Часы_Работы | Часы_Сна | |
---|---|---|---|---|---|---|
Считать | 10,0 | 10,0 | 10,0 | 10,0 | 10,0 | 10,0 |
Значит | 51,0 | 102,5 | 137,0 | 285,0 | 6,6 | 7,5 |
стандарт | 10.49 | 15,4 | 11.35 | 30.28 | 3,63 | 0,53 |
Мин. | 30,0 | 80,0 | 120,0 | 240,0 | 0,0 | 7,0 |
25% | 45,0 | 91,25 | 130,0 | 262,5 | 7,0 | 7,0 |
50% | 52,5 | 102,5 | 140,0 | 285,0 | 8,0 | 7,5 |
75% | 60,0 | 113,75 | 145,0 | 307,5 | 8,0 | 8,0 |
Максимум | 60,0 | 125,0 | 150,0 | 330,0 | 10,0 | 8,0 |
- Count — подсчитывает количество наблюдений
- Среднее - среднее значение
- Std — стандартное отклонение (поясняется в главе о статистике)
- Мин . - наименьшее значение
- 25% , 50% и 75% являются процентилями (объяснено в главе статистики)
- Макс . - максимальное значение