В Части 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.
Есть много способов выполнить указанную выше задачу. Давайте рассмотрим четыре различных способа сделать это.
- Во-первых, давайте выполним эту задачу с помощью функции 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 (ниже), чтобы получить полную записную книжку.