В Части 3 серии Python для науки о данных мы рассмотрели библиотеку pandas и ее наиболее часто используемые функции - чтение и запись файлов, индексацию, слияние, агрегирование, фильтрацию и т. Д. В этой части мы продолжим глубокое погружение. далее в библиотеку Pandas и посмотрите, как ее можно использовать вместе с другими функциями Python для запроса фреймов данных.

Начнем с импорта всех необходимых библиотек.

import pandas as pd
import os
import numpy as np

Теперь установите рабочий каталог и импортируйте набор данных радужной оболочки глаза.

os.chdir('C:\\Users\\rohan\\Documents\\Analytics\\Data')
a = pd.read_csv('iris.csv')
a.head()

Вывод:

1. Описательная статистика числовых столбцов

Суммируйте числовые столбцы набора данных (среднее значение, стандартное отклонение, минимум, максимум и т. Д.) С помощью функции описания.

a.describe()

Вывод:

2. Создать столбец на основе условий

Давайте создадим новый столбец под названием «SepalLength_Size», который будет содержать «High», если Sepal Length ≥ 5, или «Low», если Sepal Length <5.

Есть много способов выполнить указанную выше задачу. Давайте рассмотрим четыре различных способа сделать это.

  1. Во-первых, давайте выполним эту задачу с помощью функции np.where.
a['SepalLength_Size'] = np.where(a['SepalLength']>=5,'High','Low')
a.head()

Вывод:

2. Теперь используйте понимание списка (если вы забыли, что это такое, проверьте это в Части 1) для той же задачи. Кроме того, понимание списка обычно происходит быстрее, чем все другие методы.

a['SepalLength_Size'] = ['High' if x >= 5 else 'Low' for x in a['SepalLength'] ]

Вывод:

3. Теперь давайте создадим столбец с помощью функции «assign» в фрейме данных pandas.

def size(row_number):
    if row_number["SepalLength"] >=5:
        return 'High'
    else:
        return 'Low'
a = a.assign(SepalLength_Size=a.apply(size, axis=1))
a.head()

Вывод:

4. Наконец, давайте воспользуемся функцией лямбда.

a['SepalLength_Size'] = a['SepalLength'].map( lambda x: 'High' if x >= 5 else 'Low')

Вывод:

3. Уникальные значения столбца

a['Name'].unique()

Вывод:

Получите только количество уникальных значений столбца «Имя».

a['Name'].nunique()

Вывод: 3

4. Кросс-таблица (аналогична сводной таблице в Excel)

Эта функция используется для простого сопоставления двух или более факторов. Давайте воспользуемся столбцами Name и SepalLength_Size (новый столбец, который мы создали) и посмотрим, как это работает.

pd.crosstab(a['Name'],a['SepalLength_Size'])

Вывод:

В приведенной выше перекрестной таблице указано количество рядов в каждой комбинации, например, имеется 30 экземпляров видов сетоза с большим размером чашелистиков.

Давайте сделаем кросс-таблицу еще раз, чтобы узнать средний размер чашелистиков в каждом из сегментов.

pd.crosstab(a['Name'],a['SepalLength_Size'],values=a['SepalLength'],aggfunc=np.mean)

5. Сортировка значений

Давайте отсортируем данные по «длине чаши».

a.sort_values('SepalLength')

Вывод:

Отсортируйте данные сначала по «названию» (в порядке возрастания), затем по «длине сепала» (в порядке убывания).

a.sort_values(['Name','SepalLength'],ascending=[True,False])

Вывод:

Проверьте тип данных всех столбцов

6. Проверьте типы данных столбца

a.dtypes

Вывод:

7. Группирование числовых столбцов

Создайте новый столбец в наборе данных радужной оболочки, чтобы объединить «Длина чашелистника». Мы можем сделать это с помощью функции «вырезать».

bins = [0, 1, 2, 3, 4, 5,6,7]
a[‘bins’] = pd.cut(a[‘SepalLength’], bins)

Вывод:

Теперь посчитайте, сколько строк попадает в каждую корзину, используя функцию «value_counts».

Вывод:

Это охватывает большинство функций pandas, которые часто используются в науке о данных. В следующих частях мы рассмотрим визуализацию и проверку гипотез на Python.

Подключитесь к LinkedIn и загляните на Github (ниже), чтобы получить полную записную книжку.