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

by moiseevrus

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

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

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

Исследователи данных используют Pandas в Python из-за его следующих преимуществ:

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

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

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

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

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

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

  • Anaconda: conda install -c anaconda pandas
  • В блокноте Jupyter:
import sys
!conda install --yes --prefix {sys.prefix} pandas

Что такое Pandas DataFrame?

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

Фрейм данных хорошо известен статистикам и другим специалистам по данным.

Ниже изображение фрейма данных Pandas:

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

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

Серия 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 DataFrame

Теперь в этом руководстве Pandas DataFrame мы узнаем, как создать фреймворк данных Python Pandas:

Вы можете преобразовать массив numpy в фрейм данных pandas с помощью pd.Data frame(). Возможно и обратное. Чтобы преобразовать фрейм данных 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 Джон
1 40 Смит

Данные ареала панд

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

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

  • Первый параметр — дата начала
  • Второй параметр — количество периодов (необязательно, если указана дата окончания)
  • Последний параметр — это частота: день: «Д», месяц: «М» и год: «Г».
## 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(), которым предшествует имя фрейма данных panda, как показано в приведенном ниже примере 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)
А Б С Д
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)
А Б С Д
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) Отличной практикой для получения представления о данных является использование description(). Он предоставляет количество, среднее, стандартное, минимальное, максимальное и процентиль набора данных.

df.describe()
А Б С Д
считать 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']].
А Б
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]
А Б С Д
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']]
А Б
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]
А Б
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()

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

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 Джон
1 30 Смит
2 50 Павел
3 26 Адам
4 11 Смит

Drop_duplicates

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

df_concat.drop_duplicates('name')
Возраст имя
0 25 Джон
1 30 Смит
2 50 Павел
3 26 Адам

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

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

df_concat.sort_values('Age')
Возраст имя
4 11 Смит
0 25 Джон
3 26 Адам
1 30 Смит
2 50 Павел

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

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

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

Резюме

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

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

Статья является переводом guru99-com

You may also like

Leave a Comment