Scraper Обновлено: 3 August, 2018

Python для науки о данных: часть 3

  Перевод   Ссылка на автора

В предыдущих частях серии «Питон для науки о данных» мы рассматривали:

Часть 1: Основные встроенные функции в Python, такие как функции, типы данных, дата / время, отображение, уменьшение, фильтрация, лямбда-функции и т. Д.

Часть 2: Numpy библиотека для создания, доступа и управления массивами

В этой статье мы рассмотрим наиболее широко используемую библиотеку для анализа данных - Pandas. Как оно получило название? Название Панды происходит отСковородаэльдата. Данные панели включают наблюдения за несколькими периодами времени для одних и тех же людей.

Pandas предоставляют простые в использовании структуры данных и инструменты анализа данных для создания и управления наборами данных. Мы будем смотреть на следующие функции в Pandas:

  1. Серии и кадры данных
  2. Запрос серии
  3. Чтение и запись файлов
  4. индексирование
  5. сращивание
  6. Агрегирование
  7. фильтрация

Как всегда, первым шагом является импорт библиотеки. Давайте импортируем как панды, так и библиотеку.

import pandas as pd
import numpy as np

1. Панды серии

Серия - это одномерная структура данных, которая может содержать любой тип данных, например целые числа и строки. Это похоже на список в Python.

Во-первых, давайте создадим список

name = ['Rohan','Joseph','Rohit']
name

Результат: [‘Рохан’, ‘Джозеф’, ‘Рохит’]

Теперь давайте преобразуем этот же список в серию Pandas.

name = pd.Series(name)
name

Выход :

0 Рохан
1 Иосиф
2 Рохит
dtype: объект

Мы можем наблюдать, что ряд Панд показывает индекс вместе со значением в каждой позиции. Точно так же давайте создадим словарь и преобразуем его в серию Pandas.

sport = {'cricket' : 'India',
'soccer' : 'UK',
'Football' : 'USA'}sport = pd.Series(sport)
sport

Выход :

крикет Индия
футбол Великобритания
Футбол США
dtype: объект

«Ключи» словаря становятся индексом в серии, а «значения» словаря остаются значениями серии. Давайте разберемся в этом дальше, обратившись к серии Pandas.

2. Запросы серии Панд

Давайте продолжим с той же серией «Спорт», созданной выше. Давайте перейдем к третьему значению в серии

sport.iloc[2]

Выход: "США"

«Iloc» используется для выбора значения на основе целочисленного расположения значения. Теперь давайте получим доступ к тому же значению, используя индекс значения.

sport.loc['Football']

Выход: "США"

Отлично, давайте подведем итоги в серии

a = pd.Series([1,2,3])
np.sum(a) #np sum function is a faster than the in-built function

Выход: 6

Добавить данные в существующую серию.

a = pd.Series([1,2,3])
a.loc[‘City’] = ‘Delhi’

Выход :

0 1
1 2
2 3
Город Дели
dtype: объект

Давайте создадим серию с несколькими значениями, имеющими один и тот же индекс.

b = pd.Series([‘a’,’b’,’c’,’d’],index=[‘e’,’e’,’e’,’e’])
b

Выход :

э
е б
е с
е д
dtype: объект

3. Панды Датафрейм

Dataframe - это двумерная структура данных со столбцами разных типов данных (строка, целое число, дата и т. Д.).

Давайте создадим фрейм данных в Pandas. Мы создаем набор данных с тремя столбцами - Имя, Профессия и возраст.

df1 = pd.DataFrame([{'Name' : 'John', 'Occupation' :  'Data Scientist', 'Age' : 25},{'Name' : 'David', 'Occupation' :  'Analyst', 'Age' : 28},{'Name' : 'Mark', 'Occupation' :  'Teacher', 'Age' : 30}],index=['1','2','3'] )df1

Выход :

Теперь давайте создадим фрейм данных, добавив две серии.

s1 = pd.Series({'Name' : 'Rohan',
'Age':'25'})
s2 = pd.Series({'Name' : 'Rohit',
'Age' : 28})]
df1 = pd.DataFrame([s1,s2],index=['1','2'])
df1

Выход :

4. Чтение и запись файлов

Давайте посмотрим, как читать CSV-файл.

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

Давайте посмотрим на верхние 5 строк файла.

iris.head()

Выход :

Сохраните файл обратно в локальный каталог.

iris.to_csv('iris2.csv')

5. Индексирование фреймов данных

Проверьте индекс набора данных iris, импортированного на предыдущем шаге.

iris.index.values

Выход :

Теперь измените индекс на название вида. Столбец «Имя» будет отображаться как индекс и заменяет предыдущий индекс.

b = iris.set_index('Name')
b.head()

Выход :

Чтобы вернуться к предыдущему индексу, просто сбросьте индекс следующим образом.

c = b.reset_index()
c.index.values

Выход :

6. Слияние фреймов данных

Давайте снова импортируем данные радужной оболочки и объединяем с ними другой набор данных.

df1 = pd.read_csv('iris.csv')
df1.head()

Выход :

Создайте новый фрейм данных, чтобы объединиться с ним.

df2 = pd.DataFrame([{'Name' : 'setosa', 'Species' : 'Species 1'},
{'Name':'versicolor','Species':'Species 2'},
{'Name':'virginica','Species':'Species 3'}])
df2

Выход :

Объединить два вышеупомянутых набора данныхв столбце Имявыполняявнутреннее соединение,

df3 = pd.merge(df1,df2,how='inner',left_on='Name',right_on='Name')
df3.head()

Выход :

7. Агрегатная функция

Давайте соберем несколько столбцов в наборе данных iris. Во-первых, давайте найдем среднюю длину чашелистика для каждого вида.

df1.groupby('Name')['SepalLength'].mean()

Выход :

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

df1.groupby('Name')[['SepalLength','SepalWidth','PetalLength','PetalWidth']].mean()

Выход :

Вместо того, чтобы находить среднее значение всех столбцов; давайте усредним один столбец (Sepal Length) и суммируем другой столбец (Sepal Width)

a=df1.groupby('Name').agg({'SepalLength':'mean','SepalWidth':'sum'})
a

Выход :

Давайте переименуем столбцы.

a.rename(columns={'SepalLength':'Avg_SepalLength','SepalWidth':'Sum_SepalWidth'})

Выход :

8. Фильтрация данных

Еще раз, давайте импортируем набор данных iris и выполним операции для подмножества набора данных. Во-первых, давайте подгруппируем данные, у которых длина чашелистика больше 7 см.

iris = pd.read_csv(‘iris.csv’)  #import file
a = iris[(iris.SepalLength>7)]
a.head()

Выход :

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

b = iris[(iris.SepalLength>5) & (iris.PetalLength>6)]
b.head()

Выход :

Подмножество данных путем фильтрации по столбцу «Имя».

c = iris[iris['Name']=='versicolor']
c.head()

Отфильтруйте снова по столбцу имени, но по двум именам.

d = iris[iris['Name'].isin(['virginica','versicolor'])]
d.head()

Выход :


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

Подключиться LinkedIn и проверьте Github (ниже) для полной тетради.

rohanjoseph93 / Python-для-данных-наука

Python-для-data-science - Изучите науку о данных с Python

github.com