Основы Pandas

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
Вход в полноэкранный режим Выход из полноэкранного режима

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *