Установка Pandas и знакомство с Series

Установка Pandas и знакомство с Series Pandas

Привет! Pandas — это сердце анализа данных в Python. Без неё невозможно представить Data Science, аналитику и работу с табличными данными. Сегодня мы начнём знакомство с этой библиотекой и изучим её базовый строительный блок — Series.

В этой статье мы разберём:

  • Установку Pandas
  • Что такое Series
  • Создание Series из разных источников
  • Индексы и доступ к данным
  • Базовые операции и атрибуты

Что нужно знать перед началом

Для этого урока тебе понадобится:

  • Установленный Python
  • Базовое понимание списков и словарей

Совет: Pandas построен на NumPy, поэтому для работы с большими данными он очень быстрый.

Основная часть

Установка Pandas

pip install pandas

Проверка установки:

import pandas as pd
print(pd.__version__)   # 2.2.x

Совет: Рекомендуется устанавливать в виртуальное окружение.

Что такое Series

Series — это одномерный массив данных с индексами (как колонка в Excel или таблице).

import pandas as pd

# Создаём Series из списка
s = pd.Series([10, 20, 30, 40, 50])
print(s)

Результат:

0    10
1    20
2    30
3    40
4    50
dtype: int64

Совет: Слева — индексы, справа — значения.

Создание Series

Из списка:

# Без индексов (автоматические)
s1 = pd.Series([1, 2, 3, 4, 5])
print(s1)

# С произвольными индексами
s2 = pd.Series([10, 20, 30], index=['a', 'b', 'c'])
print(s2)

Из словаря:

# Ключи словаря становятся индексами
data = {'a': 10, 'b': 20, 'c': 30}
s = pd.Series(data)
print(s)
# a    10
# b    20
# c    30

Из скаляра:

# Повторяет значение для всех индексов
s = pd.Series(5, index=['x', 'y', 'z'])
print(s)
# x    5
# y    5
# z    5

Доступ к данным

s = pd.Series([10, 20, 30, 40, 50], index=['a', 'b', 'c', 'd', 'e'])

# По индексу
print(s['b'])   # 20
print(s[2])     # 30 (по позиции)

# Срез
print(s['b':'d'])
# b    20
# c    30
# d    40

# Список индексов
print(s[['a', 'c', 'e']])
# a    10
# c    30
# e    50

# Условие
print(s[s > 30])
# d    40
# e    50

Совет: s['b':'d'] включает последний индекс, в отличие от списков.

Атрибуты Series

s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])

print(s.values)        # [1 2 3 4 5] (массив NumPy)
print(s.index)         # Index(['a', 'b', 'c', 'd', 'e'])
print(s.dtype)         # int64
print(s.size)          # 5
print(s.shape)         # (5,)
print(s.empty)         # False
print(s.nbytes)        # 40 (байт)

Совет: values возвращает массив NumPy — это быстро и удобно.

Базовые операции

s = pd.Series([1, 2, 3, 4, 5])

# Арифметика
print(s + 10)   # [11, 12, 13, 14, 15]
print(s * 2)    # [2, 4, 6, 8, 10]
print(s ** 2)   # [1, 4, 9, 16, 25]

# Агрегация
print(s.sum())      # 15
print(s.mean())     # 3.0
print(s.min())      # 1
print(s.max())      # 5
print(s.std())      # 1.58
print(s.describe()) # полная статистика

Совет: describe() даёт быстрый обзор данных.

Индексы и позиции

s = pd.Series([10, 20, 30, 40, 50], index=['a', 'b', 'c', 'd', 'e'])

# По индексу
print(s['c'])     # 30
print(s.loc['c']) # 30 (явное использование)

# По позиции
print(s[2])       # 30
print(s.iloc[2])  # 30 (явное использование)

# Первые три
print(s.head(3))
# a    10
# b    20
# c    30

# Последние два
print(s.tail(2))
# d    40
# e    50

Важно: loc — по индексу, iloc — по позиции. Это важно для избежания путаницы.

Полный пример

import pandas as pd

# Создаём Series с данными о продажах
sales = pd.Series(
    [150, 200, 250, 180, 320],
    index=['Пн', 'Вт', 'Ср', 'Чт', 'Пт']
)

print("Продажи по дням:")
print(sales)

print("\nСтатистика:")
print(f"Сумма: {sales.sum()}")
print(f"Среднее: {sales.mean():.2f}")
print(f"Максимум: {sales.max()} ({sales.idxmax()})")
print(f"Минимум: {sales.min()} ({sales.idxmin()})")

print("\nДни с продажами > 200:")
print(sales[sales > 200])

Результат:

Продажи по дням:
Пн    150
Вт    200
Ср    250
Чт    180
Пт    320
dtype: int64

Статистика:
Сумма: 1100
Среднее: 220.00
Максимум: 320 (Пт)
Минимум: 150 (Пн)

Дни с продажами > 200:
Ср    250
Пт    320
dtype: int64

Задачи для закрепления

Задача 1. Создай Series из списка [5, 10, 15, 20, 25].

Задача 2. Создай Series из словаря {'a': 1, 'b': 2, 'c': 3}.

Задача 3. Получи элемент с индексом 'b'.

Задача 4. Получи элементы больше 10.

Задача 5. Вычисли сумму и среднее Series.

Ответы:

import pandas as pd

Задача 1.

s = pd.Series([5, 10, 15, 20, 25])
print(s)

Задача 2.

s = pd.Series({'a': 1, 'b': 2, 'c': 3})
print(s)

Задача 3.

print(s['b'])   # 2

Задача 4.

print(s[s > 10])   # 15, 20, 25

Задача 5.

print(s.sum())    # 75
print(s.mean())   # 15.0

Нюансы и подводные камни

Индекс может быть не уникальным

s = pd.Series([1, 2, 3], index=['a', 'a', 'b'])
print(s['a'])   # [1, 2] — два значения!

Индексы и позиции — разное

loc — по индексу, iloc — по позиции. Не путай их.

Пустые значения

Pandas использует NaN для пропусков.

Частые ошибки и как их избежать

Ошибка 1: Путаница между loc и iloc

Используй loc для индексов, iloc для позиций.

Ошибка 2: Неправильный индекс

Проверяй индексы через s.index.

Ошибка 3: Забыл импортировать pandas

Всегда: import pandas as pd

Шпаргалка

Что нужноКак пишется
Импортimport pandas as pd
Создать Seriespd.Series([1, 2, 3])
С индексамиpd.Series([1, 2, 3], index=['a', 'b', 'c'])
Доступ по индексуs['a']
Доступ по позицииs[0]
Первые Ns.head(N)
Последние Ns.tail(N)
Статистикаs.describe()

Заключение

Сегодня мы:

  • Установили Pandas
  • Познакомились с Series
  • Научились создавать и работать с Series
  • Разобрали атрибуты и операции

КВИЗ

Что дальше?

Оцените статью
IMI-DS - PYTHON LERNEN
Содержание
Оглавление ×