Pandas используется рука об руку с NumPy в науке о данных. В этой статье мы изучим Pandas и сформируем твердое понимание этой библиотеки.
Введение
Pandas — это библиотека Python с открытым исходным кодом, используемая для чтения, записи, манипулирования и анализа данных.
Pandas хорошо интегрируется с другими библиотеками визуализации данных.
Чтобы использовать pandas, вы должны импортировать ее с помощью:
import pandas as pd
pd — это условный псевдоним для pandas.
Pandas имеет две основные структуры данных: Data frames и Series.
Серия — это одномерный массив, который может содержать элементы различных типов данных. Серия похожа на список в python, но отображается как столбец в таблице.
Кадры данных — это двумерная таблица, структурированная с маркированными осями. Она представляет собой набор серий.
Создание серии
Вы можете создать серию, используя pd.Series() и передавая в качестве аргумента список или словарь.
1.Использование списка
import pandas as pd
my_list = [1,4,5,8,9,3]
series_A = pd.Series(my_list)
print(series_A)
Выход:
0 1
1 4
2 5
3 8
4 9
5 3
dtype: int64
2.Использование словаря
Пара ключ-значение в словаре становится индексом и значением в серии.
my_dict ={'one':'Jane','two':'Tom','three':'Kamau'}
series_dict = pd.Series(my_dict)
print(series_dict)
Выход:
one Jane
two Tom
three Kamau
dtype: object
Создание фреймов данных
1.Используйте список или массив NumPy. Вы можете указать индексы столбцов и строк.
patient_details = [[101,'Julia','Johns'],
[102,'Jessica','Watkins'],
[103,'Amanda','Elis']]
patient_dataframe = pd.DataFrame(patient_details,columns=['ID','FirstName','LastName'],index=[1,2,3])
print(patient_dataframe)
Выход:
ID FirstName LastName
1 101 Julia Johns
2 102 Jessica Watkins
3 103 Amanda Elis
2.Использование словаря
data = {'Name':['Kris', 'Kate', 'Gao', 'Anita'],
'Age':[27, 24, 22, 32],
'Major':['Statistics', 'Accounting', 'Economics', 'Telecoms']}
df = pd.DataFrame(data)
print(df)
Выход:
Name Age Major
0 Kris 27 Statistics
1 Kate 24 Accounting
2 Gao 22 Economics
3 Anita 32 Telecoms
Кадр данных состоит из столбцов с различными типами данных
Выход:
Name object
Age int64
Major object
dtype: object
Чтение и запись файлов CSV
Мы часто работаем с уже существующими данными, которые можно использовать для создания рамок данных. Большинство данных существует в виде файлов CSV, поэтому важно понимать, как читать и записывать файлы CSV.
Функция read_csv()
в pandas используется для чтения CSV-файлов, хранящихся локально или по URL.
df2 = pd.read_csv("https://raw.githubusercontent.com/dphi-official/Datasets/master/Standard_Metropolitan_Areas_Data-data.csv")
df2
Выход:
land_area percent_city percent_senior physicians hospital_beds graduates work_force income region crime_rate
0 1384 78.1 12.3 25627 69678 50.1 4083.9 72100 1 75.55
1 3719 43.9 9.4 13326 43292 53.9 3305.9 54542 2 56.03
2 3553 37.4 10.7 9724 33731 50.6 2066.3 33216 1 41.32
3 3916 29.9 8.8 6402 24167 52.2 1966.7 32906 2 67.38
4 2480 31.5 10.5 8502 16751 66.1 1514.5 26573 4 80.19
... ... ... ... ... ... ... ... ... ... ...
94 1511 38.7 10.7 348 1093 50.4 127.2 1452 4 70.66
95 1543 39.6 8.1 159 481 30.3 80.6 769 3 36.36
96 1011 37.8 10.5 264 964 70.7 93.2 1337 3 60.16
97 813 13.4 10.9 371 4355 58.0 97.0 1589 1 36.33
Функция to_csv()
преобразует кадр данных в CSV-файл.
Синтаксис: df.to_csv('filename.csv')
.
Вы также можете указать index=False, чтобы импортировать файл csv без индекса.
df.to_csv('filename.csv', index=False)
Атрибуты и методы
1.Атрибут shape показывает форму фрейма данных; количество строк и столбцов.
Синтаксис df.shape
.
2.Атрибут dtype: показывает типы данных в столбцах.
Синтаксис : df.dtypes
3.axes: Возвращает список с метками оси строк и метками оси столбцов.
Синтаксис : df.axes
.
4.empty: Возвращает True, если dataFrame полностью пуст.
Синтаксис : df.empty
5.ndim: Возвращает количество измерений базовых данных, по определению 1.
Синтаксис : df.ndim
6.size: Возвращает количество элементов в dataFrame. Продукт строк и столбцов.
Синтаксис df.size
.
Для отображения первых пяти наблюдений из датафрейма используйте метод head().
df2.head()
Выход:
land_area percent_city percent_senior physicians hospital_beds graduates work_force income region crime_rate
0 1384 78.1 12.3 25627 69678 50.1 4083.9 72100 1 75.55
1 3719 43.9 9.4 13326 43292 53.9 3305.9 54542 2 56.03
2 3553 37.4 10.7 9724 33731 50.6 2066.3 33216 1 41.32
3 3916 29.9 8.8 6402 24167 52.2 1966.7 32906 2 67.38
4 2480 31.5 10.5 8502 16751 66.1 1514.5 26573 4 80.19
Для отображения последних пяти наблюдений из фрейма данных используйте метод _tail()_. Вы также можете указать количество отображаемых строк, передав аргумент методам tail() и head().
df2.tail()
Выход:
land_area percent_city percent_senior physicians hospital_beds graduates work_force income region crime_rate
94 1511 38.7 10.7 348 1093 50.4 127.2 1452 4 70.66
95 1543 39.6 8.1 159 481 30.3 80.6 769 3 36.36
96 1011 37.8 10.5 264 964 70.7 93.2 1337 3 60.16
97 813 13.4 10.9 371 4355 58.0 97.0 1589 1 36.33
98 654 28.8 3.9 140 1296 55.1 66.9 1148 3 68.76
Метод info() возвращает краткую информацию о фрейме данных.
df2.info()
Выход:
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 land_area 99 non-null int64
1 percent_city 99 non-null float64
2 percent_senior 99 non-null float64
3 physicians 99 non-null int64
4 hospital_beds 99 non-null int64
5 graduates 99 non-null float64
6 work_force 99 non-null float64
7 income 99 non-null int64
8 region 99 non-null int64
9 crime_rate 99 non-null float64
dtypes: float64(5), int64(5)
Метод describe() возвращает сводку только по числовым столбцам. Чтобы получить сводку по категориальным столбцам, мы используем параметр include.
Синтаксис df.describe(include='object')
.
Вы также можете использовать include=’all’, чтобы получить сводку по всем столбцам.
Синтаксис : df.describe(include='all')
.
Функция mean() возвращает среднее значение каждого числового столбца.
Вывод:
land_area 2615.727273
percent_city 42.518182
percent_senior 9.781818
physicians 1828.333333
hospital_beds 6345.868687
graduates 54.463636
work_force 449.366667
income 6762.505051
region 2.494949
crime_rate 55.643030
dtype: float64
Функция median() возвращает медиану каждого числового столбца.
Выход:
land_area 1951.00
percent_city 39.50
percent_senior 9.70
physicians 774.00
hospital_beds 3472.00
graduates 54.00
work_force 257.20
income 3510.00
region 3.00
crime_rate 56.06
dtype: float64
Функция value_counts() возвращает количество уникальных записей в данных.
land_area percent_city percent_senior physicians hospital_beds graduates work_force income region crime_rate
47 41.9 11.9 745 3352 36.3 258.9 3915 1 51.70 1
2966 26.9 10.3 2053 6604 56.3 450.4 6966 1 56.55 1
2766 67.9 7.7 679 3873 56.3 224.0 2598 3 63.22 1
2737 45.0 10.5 602 1462 71.3 131.4 1980 4 63.44 1
2710 63.7 6.2 357 1277 72.8 110.9 1639 4 63.10 1
..
1490 33.1 11.9 827 3818 47.4 300.2 4144 1 30.59 1
1489 58.8 9.5 911 5720 56.5 175.1 2264 3 70.55 1
1465 30.3 6.8 598 6456 50.6 164.7 2201 3 70.66 1
1456 46.7 10.4 2484 8555 56.8 710.4 10104 2 44.64 1
27293 25.3 12.3 2018 6323 57.4 510.6 7399 4 76.03 1
Length: 99, dtype: int64
Функция unique() возвращает все уникальные категории в столбце.
Чтобы отбросить столбцы или строки, используйте df.drop().
Отбросить значения из строк (ось=0)
Отбросить значения из столбцов (ось=1)
Индексирование
Для индексации используются методы loc() и iloc(). loc() — это выборка на основе меток, а iloc() — выборка на основе индексов.
df.iloc[1]
Вывод:
Name Kate
Age 24
Major Accounting
Name: 1, dtype: object
Вы можете указать строку и столбец для доступа к определенным элементам. Вы также можете использовать отрицательную индексацию.
Выход:
Вы также можете использовать нарезку для доступа к диапазону элементов.
Выход:
0 27
1 24
2 22
Name: Age, dtype: int64
С помощью функции loc() можно указать столбцы
Выход:
Name Age
0 Kris 27
1 Kate 24
2 Gao 22
Выбор и присвоение данных
Выбор на основе атрибутов
Вы можете использовать точечный выбор для выбора столбца, используя следующий синтаксис: df.columnName
Выход:
0 Kris
1 Kate
2 Gao
3 Anita
Name: Name, dtype: object
Для выбора столбца или нескольких столбцов можно также использовать выделение на основе скобок.
При выборе нескольких столбцов мы используем двойные квадратные скобки.
df[[‘Age’,’Major’]]
Вывод:
Age Major
0 27 Statistics
1 24 Accounting
2 22 Economics
3 32 Telecoms
Условный выбор.
Чтобы выбрать строку или строки, удовлетворяющие определенному условию, мы можем использовать условные операторы, такие как ==.
Выход:
0 True
1 False
2 False
3 False
Name: Age, dtype: bool
Присвоение данных
Чтобы присвоить данные заданному столбцу или строке, выберите и укажите новые данные для замены.
df.Name= 'Kamau'
df
Выход:
Name Age Major
0 Kamau 27 Statistics
1 Kamau 24 Accounting
2 Kamau 22 Economics
3 Kamau 32 Telecoms