Основные функции Pandas, которые помогут вам в предварительной обработке данных
Если вы работаете в Data Science, вы должны быть знакомы с Pandas.
Специально разработанный для выполнения задач предварительной обработки данных, Pandas имеет множество функций, которые могут сделать управление, очистку, визуализацию и получение данных чрезвычайно легкими. И, как известно, значительная часть времени специалистов по данным уходит на преобразование данных в чистый и понятный формат для машинного обучения.
В этой статье я рассмотрю основные функции Pandas, которые значительно упростили мою жизнь в качестве стажера Data Science.
В этой статье я буду использовать набор данных Titanic от Kaggle. Давайте начнем.
Загрузка данных в формате.
data = pd.read_csv('train.csv') data
1) data.isnull (). Sum ()
Первая команда, которую я хотел бы рассмотреть, - это «data.isnull (). Sum ()», которая дает нам количество нулевых значений, присутствующих в нашем наборе данных.
Перед тем, как начать какую-либо задачу предварительной обработки, необходимо проверить, какое количество нулевых значений присутствует в нашем наборе данных. Таким образом, мы можем либо удалить, либо присвоить значения NULL, и приведенная ниже команда делает именно это.
Давайте проверим вывод
data.isnull().sum()
2) data.fillna ()
У нас есть ряд нулевых значений, с которыми нужно иметь дело.
data.fillna () заменяет все нулевые значения на значение по нашему выбору. Давайте используем его в столбцах "Начал" и "Возраст".
В столбце «Прошло» три значения: «S», «C» и «Q». Я хотел бы вменять нулевые значения «наиболее часто встречающемуся значению» или «режиму» начатого столбца, тогда как столбец «Возраст» может быть вменен «средним значением столбца« Возраст »
Режим столбца «Вышло» и среднее значение столбца «Возраст» можно представить как
data['Embarked'].mode()[0] data['Age'].mean()
И мы можем добавить это в наш код data.fillna (), чтобы присвоить нулевые значения.
data['Embarked'] = data['Embarked'].fillna(data['Embarked'].mode()[0]) data['Age'] = data['Age'].fillna(data['Age'].mean())
3) .Label Encoder.
При работе с категориальными значениями необходимо понимать, как можно отобразить категориальные переменные в числовые категориальные переменные.
К счастью, в библиотеке sci-kit Learning есть библиотека LabelEncoder, которая поможет нам в этом позаботиться.
В приведенном выше примере я хотел бы преобразовать значения в столбцах «Пол» и «Принято» в числовые значения. Давай проверим.
from sklearn import preprocessing le = preprocessing.LabelEncoder() le.fit(data['Sex']) data['Sex'] = le.transform(data['Sex']) data le = preprocessing.LabelEncoder() le.fit(data['Embarked']) data['Embarked'] = le.transform(data['Embarked']) data
Мы получаем:
4) data.drop ()
Бывают ситуации, когда нам не нужны определенные столбцы как часть фрейма данных, и поэтому мы должны знать, как удалить их.
Файл data. Функция drop () дает нам возможность удалять столбцы, которые нам не нужны. Уберем столбцы «Билет», «Каюта» и «Имя».
data.drop(['Name','Ticket','Cabin'],axis=1,inplace=True) data
«Axis = 1» сообщает пандам, что мы удаляем «столбцы», а «inplace = True» делает изменение постоянным.
Мы получаем:
5) data.corr ()
Функция data.corr () помогает нам понять корреляцию всех переменных, присутствующих в наборе данных, и помогает нам выбирать переменные для части проекта, связанной с машинным обучением. Давайте попробуем
data.corr()
Приведенная выше таблица очень удобна для нас, чтобы понять, какие переменные сильно коррелированы друг с другом.
6) данные [«название столбца»]. value_counts ()
Теперь, когда наши данные очищены и обработаны, я хотел бы перейти к анализу различных столбцов нашего фрейма данных.
У нас есть столбец «Выжившие», в котором выжившие помечены как 1, а люди, которые не выжили, помечены как 0.
Вышеупомянутая функция дает нам количество уникальных значений, присутствующих в наших столбцах. Давайте попробуем.
data['Survived'].value_counts()
Реализация приведенной выше команды дает нам:
Мы можем реализовать указанную выше команду для всех столбцов, чтобы проанализировать фрейм данных.
7) data.groupby ()
Groupby - чрезвычайно удобная функция, которая дает нам «агрегированное среднее» или «агрегированную сумму» наших значений. Например:
Давайте сгруппируем весь фрейм данных в столбце «Выжившие» и найдем среднее значение.
data.groupby('Survived').mean()
В результате мы получаем:
Глядя на групповую таблицу, мы видим, что люди, которые не выжили, были немного старше по возрасту, чем те, кто выжил, но имели очень низкий тариф, что указывает на разницу в классе. Функцию groupby можно применить к любому столбцу по нашему выбору, чтобы лучше понимать данные.
Заключение
Я рассмотрел 7 основных функций Pandas, которые чрезвычайно удобны, когда дело доходит до предварительной обработки данных. Команд гораздо больше, чем те, которые я только что упомянул, и я, надеюсь, рассмотрю их в некоторых из моих следующих статей.