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:
Что такое серия?
Серия — это одномерная структура данных. Он может иметь любую структуру данных, например целое число, число с плавающей запятой и строку. Это полезно, когда вы хотите выполнить вычисления или вернуть одномерный массив. Серия по определению не может иметь несколько столбцов. В последнем случае используйте структуру фрейма данных.
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] |