Python Учебное пособие по Pandas: DataFrame, диапазон дат, использование Pandas

Что такое Панды Python?

Панды — это библиотека с открытым исходным кодом, которая позволяет выполнять манипуляции и анализ данных в Python. Панды Python Библиотека предлагает манипуляции данными и операции с данными для числовых таблиц и временных рядов. Pandas предоставляет простой способ создания, манипуляции и обработки данных. Она построена на основе NumPy, что означает, что для ее работы необходим NumPy.

Зачем использовать Панды?

Ученые, работающие с данными, используют Pandas в Python за следующие преимущества:

  • Легко обрабатывает недостающие данные
  • Он использует Серия для одномерной структуры данных и DataFrame для многомерной структуры данных
  • Он обеспечивает эффективный способ разделения данных
  • Он обеспечивает гибкий способ объединения, конкатенации или изменения формы данных.
  • Он включает в себя мощный инструмент для работы с временными рядами.

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

Как установить Панду?

Теперь в этом Python Учебное пособие по Pandas, мы узнаем, как установить Pandas в Python.

Чтобы установить библиотеку Pandas, обратитесь к нашему руководству. Как установить ТензорФлоу. Pandas устанавливается по умолчанию. В удаленном случае панды не установлены -

Вы можете установить Pandas, используя:

  • Анаконда: conda install -c anaconda pandas
  • In Jupyter Блокнот :
import sys
!conda install --yes --prefix {sys.prefix} pandas

Что такое DataFrame Pandas?

Панды DataFrame представляет собой двумерный массив с размеченной структурой данных, имеющей разные типы столбцов. DataFrame — это стандартный способ хранения данных в табличном формате со строками для хранения информации и столбцами для именования информации. Например, цена может быть именем столбца, а 2,3,4 — значениями цен.

Data Frame хорошо известен статистикам и другим практикам обработки данных.

Ниже изображение кадра данных Pandas:

Панды DataFrame

Что такое серия?

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

Python Серия Pandas имеет следующие параметры:

  • Данные: может быть списком, словарем или скалярным значением.
pd.Series([1., 2., 3.])
0    1.0
1    2.0
2    3.0
dtype: float64

Вы можете добавить индекс с помощью index. Это помогает называть строки. Длина должна быть равна размеру столбца

pd.Series([1., 2., 3.], index=['a', 'b', 'c'])

Ниже вы создаете серию Pandas с отсутствующим значением в третьих строках. Обратите внимание: пропущенные значения в Python отмечены «NaN». Вы можете использовать numpy для искусственного создания отсутствующего значения: np.nan.

pd.Series([1,2,np.nan])

Результат

0    1.0
1    2.0
2    NaN
dtype: float64

Создать фрейм данных Pandas

Теперь в этом уроке Pandas DataFrame мы научимся создавать Python Кадр данных Pandas:

Вы можете преобразовать массив numpy в фрейм данных pandas с помощью pd.Dataframe(). Возможно и обратное. Чтобы преобразовать фрейм данных pandas в массив, вы можете использовать np.array().

## Numpy to pandas
import numpy as np
h = [[1,2],[3,4]] 
df_h = pd.DataFrame(h)
print('Data Frame:', df_h)

## Pandas to numpy
df_h_n = np.array(df_h)
print('Numpy array:', df_h_n)
Data Frame:    0  1
0  1  2
1  3  4
Numpy array: [[1 2]
 [3 4]]

Вы также можете использовать словарь для создания кадра данных Pandas.

dic = {'Name': ["John", "Smith"], 'Age': [30, 40]}
pd.DataFrame(data=dic)
Возраст ФИО
0 30 John
1 40 Smith

Данные о диапазоне панд

У Pandas есть удобный API для создания диапазона дат. Давайте учиться с Python Примеры панд:

pd.data_range(дата,период,частота):

  • Первый параметр — дата начала.
  • Второй параметр — количество периодов (необязательно, если указана дата окончания).
  • Последний параметр — это частота: день: «D», месяц: «M» и год: «Y».
## Create date
# Days
dates_d = pd.date_range('20300101', periods=6, freq='D')
print('Day:', dates_d)

Результат

Day: DatetimeIndex(['2030-01-01', '2030-01-02', '2030-01-03', '2030-01-04', '2030-01-05', '2030-01-06'], dtype='datetime64[ns]', freq='D')
# Months
dates_m = pd.date_range('20300101', periods=6, freq='M')
print('Month:', dates_m)

Результат

Month: DatetimeIndex(['2030-01-31', '2030-02-28', '2030-03-31', '2030-04-30','2030-05-31', '2030-06-30'], dtype='datetime64[ns]', freq='M')

Проверка данных

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

Шаг 1) Создайте случайную последовательность с помощью NumPy. Последовательность состоит из 4 столбцов и 6 строк.

random = np.random.randn(6,4)

Шаг 2) Затем вы создаете фрейм данных, используя pandas.

Используйте date_m в качестве индекса для фрейма данных. Это означает, что каждой строке будет присвоено «имя» или индекс, соответствующий дате.

Наконец, вы даете имя 4 столбцам со столбцами аргументов.

# Create data with date
df = pd.DataFrame(random,
                  index=dates_m,
                  columns=list('ABCD'))

Шаг 3) Использование функции головы

df.head(3)
A B C D
2030-01-31 1.139433 1.318510 -0.181334 1.615822
2030-02-28 -0.081995 -0.063582 0.857751 -0.527374
2030-03-31 -0.519179 0.080984 -1.454334 1.314947

Шаг 4) Использование функции хвоста

df.tail(3)
A B C D
2030-04-30 -0.685448 -0.011736 0.622172 0.104993
2030-05-31 -0.935888 -0.731787 -0.558729 0.768774
2030-06-30 1.096981 0.949180 -0.196901 -0.471556

Шаг 5) Отличный способ получить представление о данных — использовать описать(). Он предоставляет количество, среднее, стандартное, минимальное, максимальное и процентиль набора данных.

df.describe()
A B C D
считать 6.000000 6.000000 6.000000 6.000000
значить 0.002317 0.256928 -0.151896 0.467601
станд 0.908145 0.746939 0.834664 0.908910
мин -0.935888 -0.731787 -1.454334 -0.527374
25% -0.643880 -0.050621 -0.468272 -0.327419
50% -0.300587 0.034624 -0.189118 0.436883
75% 0.802237 0.732131 0.421296 1.178404
Макс 1.139433 1.318510 0.857751 1.615822

Срез данных

Последний пункт этого Python Учебное пособие по Pandas посвящено тому, как разрезать фрейм данных pandas.

Вы можете использовать имя столбца для извлечения данных из определенного столбца, как показано в примере Pandas ниже:

## Slice
### Using name
df['A']

2030-01-31   -0.168655
2030-02-28    0.689585
2030-03-31    0.767534
2030-04-30    0.557299
2030-05-31   -1.547836
2030-06-30    0.511551
Freq: M, Name: A, dtype: float64

Чтобы выбрать несколько столбцов, вам нужно дважды использовать скобку [[..,..]]

Первая пара скобок означает, что вы хотите выбрать столбцы, вторая пара скобок указывает, какие столбцы вы хотите вернуть.

df[['A', 'B']].
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

Вы можете разрезать строки с помощью:

Код ниже возвращает первые три строки

### using a slice for row
df[0:3]
A B C D
2030-01-31 -0.168655 0.587590 0.572301 -0.031827
2030-02-28 0.689585 0.998266 1.164690 0.475975
2030-03-31 0.767534 -0.940617 0.227255 -0.341532

Функция loc используется для выбора столбцов по именам. Как обычно, значения до запятой относятся к строкам, а после — к столбцу. Вам необходимо использовать скобки, чтобы выбрать более одного столбца.

## Multi col
df.loc[:,['A','B']]
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

Существует еще один способ выбора нескольких строк и столбцов в Pandas. Вы можете использовать iloc[]. Этот метод использует индекс вместо имени столбца. Код ниже возвращает тот же кадр данных, что и выше.

df.iloc[:, :2]
A B
2030-01-31 -0.168655 0.587590
2030-02-28 0.689585 0.998266
2030-03-31 0.767534 -0.940617
2030-04-30 0.557299 0.507350
2030-05-31 -1.547836 1.276558
2030-06-30 0.511551 1.572085

Оставить столбец

Вы можете удалить столбцы, используя pd.drop().

df.drop(columns=['A', 'C'])
B D
2030-01-31 0.587590 -0.031827
2030-02-28 0.998266 0.475975
2030-03-31 -0.940617 -0.341532
2030-04-30 0.507350 -0.296035
2030-05-31 1.276558 0.523017
2030-06-30 1.572085 -0.594772

конкатенация

Вы можете объединить два DataFrame в Pandas. Вы можете использовать pd.concat()

Прежде всего, вам нужно создать два DataFrame. Пока все хорошо, вы уже знакомы с созданием фреймов данных.

import numpy as np
df1 = pd.DataFrame({'name': ['John', 'Smith','Paul'],
                     'Age': ['25', '30', '50']},
                    index=[0, 1, 2])
df2 = pd.DataFrame({'name': ['Adam', 'Smith' ],
                     'Age': ['26', '11']},
                    index=[3, 4])  

Наконец, вы объединяете два DataFrame

df_concat = pd.concat([df1,df2]) 
df_concat
Возраст имя
0 25 John
1 30 Smith
2 50 Пол
3 26 Адам
4 11 Smith

Удаление_дубликатов

Если набор данных может содержать повторяющуюся информацию, используйте `drop_duplications`, чтобы легко исключить повторяющиеся строки. Вы можете видеть, что `df_concat` имеет повторяющееся наблюдение, `Smith` появляется дважды в столбце `name`.

df_concat.drop_duplicates('name')
Возраст имя
0 25 John
1 30 Smith
2 50 Пол
3 26 Адам

Сортировать значения

Вы можете отсортировать значение с помощью sort_values

df_concat.sort_values('Age')
Возраст имя
4 11 Smith
0 25 John
3 26 Адам
1 30 Smith
2 50 Пол

Переименование: изменение индекса

Вы можете использовать переименование, чтобы переименовать столбец в Pandas. Первое значение — это имя текущего столбца, а второе значение — имя нового столбца.

df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
Возраст_чел. Фамилия
0 25 John
1 30 Smith
2 50 Пол
3 26 Адам
4 11 Smith

Итого

Ниже приводится краткое изложение наиболее полезного метода анализа данных с помощью Pandas.

импортировать данные read_csv
создать серию Серии
Создать фрейм данных DataFrame
Создать диапазон дат диапазон дат
вернуть голову
возвратный хвост хвост
Описывать описывать
фрагмент, используя имя имя_данных['имя_столбца']
Разрезать по строкам имя_данных[0:5]