Рубрики
Без рубрики

Анализ данных обучения с Python – Введение в панды

Что такое панды и зачем нам это Pandas – это библиотека Python, которая предоставляет богатые данные Stru … Tagged с помощью Python, DataScience, Dataanalysis, Pandas.

Что такое панды и зачем нам это

Панды Является ли библиотека Python, которая предоставляет богатые структуры данных и функции, которые облегчают работу с реляционными и структурированными данными легкими, быстрыми и удобными. Он разработан поверх Numpy Пакет для высокопроизводительных вычислений и дает гибкие методы манипулирования данными реляционных баз данных. Хорошо, теперь зачем нам вообще нужны панадас? Если мы хотим манипулировать данными высокого размера, у нас есть Numpy, так зачем нам это? Ну, действительно, Numpy есть для манипуляции с данными высокой размерности, но то, что он не обеспечивает, – это способ индексировать или пометить наши данные, как это.

И, хотя мы можем сделать так много интересных вещей с нашими данными, используя функции Numpy, такие как поиск статистики, такую как среднее значение, медиана, режим и стандартное отклонение, но мы не можем заполнить пропущенные значения в наших данных. Numpy не предоставляет никакого встроенного метода для обработки пропущенных значений в наших данных, и в реальных проблемах мы не всегда приходим к идеальным наборам данных.

Существуют и другие ограничения для Numpy, такие как никакие способы группировать данные и никаких способов развернуть данные, и, таким образом, Pandas был создан для того, чтобы помочь программистам и ученым -ученым с задачей анализа данных в Python.

Структуры данных в пандах

Что ж, как мы упоминали ранее, Pandas предоставляет богатые структуры и функции данных, давайте начнем с рассмотрения структур данных И тогда мы рассмотрим функции и методы, которые мы можем применить к этим структурам данных для хронота данных.

Панды предоставляют две основные структуры данных, а именно «серии» и «DataFrames». На простом английском языке серия представляет собой одномерную меченную массив, тогда как DataFrames представляет собой двухмерный меченый массив с столбцами потенциально разных типов. Хотя серии полезны во многих задачах, DataFrames являются наиболее часто используемым объектом Pandas. Вы можете думать о DataFrame как о таблице SQL.

Давайте посмотрим на пример для обеих этих структур данных.

Давайте начнем с рассмотрения различных способов создания объекта серии. Но, прежде чем мы перейдем к кодированию, нам нужно установить Pandas в качестве пакета Python. Это можно сделать с помощью PIP установить Pandas или вы можете установить его, используя Conda установить панды Если вы используете распределение Anaconda для Python. Если у вас нет Python, установленного на вашей машине, лучший способ начать работу без всей суеты установки – это Google Colab. Узнайте больше об этом Здесь Анкет Я собираюсь использовать тетради Юпитера, которые вы можете найти Здесь Анкет

Серии

Как упомянуто выше, серии представляют собой одномерный массив, похожий на массив, содержащий множество данных, и массив меток, связанных с данными. Метки данных называются «индекс». Мы можем создать серию из списка, словаря или массива Numpy. Давайте начнем со списка.

Серия с использованием списка

In[1]:
    import pandas as pd
    import numpy as np

    friends = ["Monica", "Chandler", "Joey", "Pheobe", "Ross", "Rachel"]
    series = pd.Series(friends)
    series

Out[1]:
    0      Monica
    1    Chandler
    2        Joey
    3      Pheobe
    4        Ross
    5      Rachel
    dtype: object

Как мы видим, мы получаем объект серии с данными, которые мы предоставили с соответствующим индексом для каждой строки. Мы можем получить доступ к нашим данным из этого Серия Используя индекс, как мы делаем со списком.

In[2]:
    series[0]

Out[2]:
    'Monica'

Или мы можем получить все значения в списке, используя .value Атрибут на объекте серии.

In[3]:
    series.values

Out[3]:
    array(['Monica', 'Chandler', 'Joey', 'Pheobe', 'Ross', 'Rachel'],
      dtype=object)

Точно так же мы можем получить все индексы в списке, используя .index атрибут.

In[4]:
    series.index

Out[4]:
    RangeIndex(start=0, stop=6, step=1)

Обратите внимание на что -нибудь другое? Правильно, он не возвращает список индексов, как это было в значениях, это потому, что неявный индекс, который Pandas автоматически создает для нас, является лишь списком последовательных чисел, начиная с 0. Более интенсивным подходом будет предоставление индекса, определяющего каждую точку данных при создании серии.

In[5]:
    nick_names = ["Monana", "Officer Bing", "Ken Adams", "Regina Filange", "Dinosaur Guy", "Fun Aunt Rachel"]
    series = pd.Series(data = friends, index = nick_names)
    series

Out[6]:
    Monana               Monica
    Officer Bing       Chandler
    Ken Adams              Joey
    Regina Filange       Pheobe
    Dinosaur Guy           Ross
    Fun Aunt Rachel      Rachel
    dtype: object

И теперь мы можем получить доступ к нашим данным, используя индекс, который мы предоставили таким образом.

In[7]:
    series["Dinosaur Guy"]

Out[7]:
    'Ross'

Это явно плохой пример индексации, но у вас есть идея, верно?

Серия с использованием словаря

Теперь давайте создаем создание серии из словаря. Создавая серию из словарей, мы не передаем индекс, серия заказано по заказу в словаре, а ключи словаря становятся индексами серии.

In[8]:
    d = {"a" : 1, "b" : 2, "c" : 3}
    series = pd.Series(d)
    series

Out[8]:
    a    1
    b    2
    c    3
    dtype: int64

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

In[9]:
    series["c"]

Out[9]:
    3

In[10]:
    series["d"] = 4
    series

Out[10]:
    a    1
    b    2
    c    3
    d    4
    dtype: int64

Серия с использованием массива Numpy

И, наконец, мы можем создать серию из массива Numpy.

In[11]:
    d = np.random.randn(5) # Create a numpy array of 5 random numbers
    series = pd.Series(d)
    series

Out[11]:
    0   -0.507243
    1   -0.115731
    2    0.526216
    3   -0.495840
    4    0.065357
    dtype: float64

Серия также похожа на Numpy Array в функциональных возможностях. Мы можем индексировать данные из серийного объекта, как мы делаем из массива Numpy.

In[12]
    series[:3] # Returns first 3 elements

Out[12]:
    0   -0.507243
    1   -0.115731
    2    0.526216
    dtype: float64

In[13]:
    series[series > 0] # Returns elements whose value is greater than 0

Out[13]:
    2    0.526216
    4    0.065357
    dtype: float64

Теперь, как только мы создали серию, мы можем применить много разных методов для выполнения различных задач. Некоторые из них такие, как ниже. Узнайте больше обо всех методах, доступных на объекте серии AT Официальная документация Pandas Анкет

In[14]:
    series.size # Returns size of the series.
Out[14]:
    5

In[15]:
    series.shape # Returns shape of the series.
Out[15]:
    (5,)

In[16]:
    series.add(1) # Returns series with elements' value increased by 1
Out[16]:
    0    0.492757
    1    0.884269
    2    1.526216
    3    0.504160
    4    1.065357
    dtype: float64

In[17]:
    series.sub(1) # Returns series with elements' value decreased by 1
Out[17]:
    0   -1.507243
    1   -1.115731
    2   -0.473784
    3   -1.495840
    4   -0.934643
    dtype: float64

In[18]:
    series.mul(10) # Returns series with elements' value multiplied by 10
Out[18]:
    0   -5.072431
    1   -1.157307
    2    5.262160
    3   -4.958401
    4    0.653565
    dtype: float64

In[19]:
    series.div(10) # Returns series with elements' value divided by 10
Out[19]:
    0   -0.050724
    1   -0.011573
    2    0.052622
    3   -0.049584
    4    0.006536
    dtype: float64

In[20]:
    series.abs() # Returns series with absolute value of elements
Out[20]:
    0    0.507243
    1    0.115731
    2    0.526216
    3    0.495840
    4    0.065357
    dtype: float64

In[21]:
    series.max() # Returns maximum of all the elements.
Out[21]:
    0.5262159987471329

In[22]:
    series.min() # Returns minimum of all the elements.
Out[22]:
    -0.5072430551642492

In[23]:
    series.sum() # Returns sum of all the elements.
Out[23]:
    -0.5272413324692681

In[24]:
    series.mean() # Returns mean of the series.
Out[24]:
    -0.10544826649385361

In[25]:
    series.median() # Returns median of the series.
Out[25]:
    -0.1157306666767307

In[26]:
    series.std() # Returns standard deviation of the series.
Out[26]:
    0.43073327047221427

In[27]:
    series.drop(4) # Returns series with specified index removed.
Out[27]:
    0   -0.507243
    1   -0.115731
    2    0.526216
    3   -0.495840
    dtype: float64

In[28]:
    series
Out[28]:
    0   -0.507243
    1   -0.115731
    2    0.526216
    3   -0.495840
    4    0.065357
    dtype: float64

Посмотрите на последний код, когда мы печатаем оригинальный объект серии, мы получаем элементы так же, как мы создали, потому что все операции, которые мы применяли на объекте серии, дают нам представление о серии и не влияют на исходный объект. Итак, это только начало, есть еще много интересных вещей, которые мы можем сделать с пандами, такими как сбрасывание нулевых значений или замена их некоторыми другими значениями из данных, визуализируйте данные, используя так много графиков и диаграмм, комбинируйте и объединяют два или Больше серий, создавать и манипулировать временными рядами и т. Д.

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

Получить полную ноутбука здесь: Пандас-1 ноутбук

Спасибо за чтение. Счастливого кодирования 💻

Оригинал: “https://dev.to/jamesshah/learning-data-analysis-with-python-introduction-to-pandas-202d”