Pandas & NumPy Academy · Урок

Создание Series

Создайте Series Pandas из списка Python, словаря и массива NumPy и изучите её атрибуты index и values

Урок 1 из 413 шагов

«Создание Series» — бесплатный урок Pandas & NumPy Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Pandas & NumPy Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Pandas & NumPy Academy содержит 4 уроков всего.

Что такое Series в Pandas

Series в Pandas — это одномерный массив с метками, способный хранить данные любого типа: целые числа, числа с плавающей точкой, строки, объекты Python или даже другие Series. Представляйте его как массив NumPy с пользовательским индексом (метками для каждого элемента). Именно индекс делает Series гораздо удобнее обычных массивов для анализа данных, когда значениям нужны понятные названия.

import pandas as pd
import numpy as np

s = pd.Series([10, 20, 30, 40])
print(s)
# 0    10
# 1    20
# 2    30
# 3    40
# dtype: int64

Создание Series из списка Python

Передача списка Python в pd.Series() создаёт Series со стандартным целочисленным RangeIndex (0, 1, 2, ...). Пользовательские метки индекса можно указать через параметр index=. Длина списка индексов должна совпадать с длиной данных. Метками могут быть строки, целые числа, даты или любые хешируемые объекты Python.

import pandas as pd

temps = pd.Series([22.5, 19.0, 25.3, 17.8],
                  index=['Mon', 'Tue', 'Wed', 'Thu'])
print(temps)
# Mon    22.5
# Tue    19.0
# Wed    25.3
# Thu    17.8
# dtype: float64

Создание Series из словаря

Словарь Python можно напрямую передать в pd.Series(). Ключи словаря становятся метками индекса, а значения — данными. Это один из самых естественных способов создать Series, если данные уже имеют содержательные метки. Получившийся Series упорядочен в соответствии с порядком добавления элементов в словарь (Python 3.7+).

import pandas as pd

stock = {'AAPL': 182.5, 'GOOG': 141.3, 'MSFT': 378.9}
s = pd.Series(stock)
print(s)
# AAPL    182.5
# GOOG    141.3
# MSFT    378.9
# dtype: float64

Создание Series из массива NumPy

Массив ndarray из NumPy можно передать как аргумент данных. dtype Series совпадает с dtype ndarray. Исходные данные хранятся как массив NumPy, поэтому все универсальные функции NumPy напрямую работают с Series. Благодаря этому существующий код NumPy легко перенести в Pandas без переписывания логики подготовки данных.

import pandas as pd
import numpy as np

arr = np.linspace(0, 1, 5)
s = pd.Series(arr, index=['a', 'b', 'c', 'd', 'e'])
print(s)
# a    0.00
# b    0.25
# c    0.50
# d    0.75
# e    1.00

Атрибуты .index и .values

s.index возвращает объект Index, содержащий метки. s.values возвращает исходный массив NumPy со значениями данных. Оба атрибута важны для совместимости: Вы можете передать s.values любой функции NumPy, а затем преобразовать результат обратно в Series с исходным индексом. s.dtype возвращает тип данных значений.

import pandas as pd

s = pd.Series([3, 1, 4], index=['x', 'y', 'z'])
print(s.index)   # Index(['x', 'y', 'z'], dtype='object')
print(s.values)  # [3 1 4]
print(s.dtype)   # int64

Имя Series и имя индекса

У Series может быть атрибут .name, описывающий, что представляют собой значения, а у его индекса — атрибут .name, описывающий метки. Эти имена отображаются в DataFrames, когда Series назначается столбцу, а также в подписях графиков. Задайте их с помощью s.name = 'price' или при создании через name=.

import pandas as pd

s = pd.Series([1.2, 3.4, 5.6],
              index=['a', 'b', 'c'],
              name='measurement')
s.index.name = 'label'
print(s)
# label
# a    1.2
# b    3.4
# c    5.6
# Name: measurement, dtype: float64

Создание Series со скалярным значением

Передача одного скалярного значения в pd.Series() вместе с явным индексом создаёт Series, каждый элемент которого равен этому значению. Это похоже на np.full() в NumPy и удобно для создания Series с постоянным базовым значением, которое можно вычитать из реального Series или сравнивать с ним.

import pandas as pd

s = pd.Series(5, index=['a', 'b', 'c', 'd'])
print(s)
# a    5
# b    5
# c    5
# d    5
# dtype: int64

Автоматическое выравнивание индексов

Одна из самых мощных возможностей Series в Pandas — автоматическое выравнивание индексов. Когда Вы складываете два Series, Pandas выравнивает их по меткам перед вычислением результата. Если метка есть в одном Series, но отсутствует в другом, результат для этой метки равен NaN. Это предотвращает незаметные ошибки из-за смещения на один элемент, характерные для операций с массивами NumPy.

import pandas as pd

a = pd.Series([1, 2], index=['x', 'y'])
b = pd.Series([10, 20], index=['y', 'z'])
print(a + b)
# x     NaN
# y    12.0
# z     NaN

Проверка длины и формы Series

len(s) возвращает количество элементов. s.shape возвращает кортеж (n,) в соответствии с соглашениями NumPy. s.size возвращает то же значение, что и len(s). Используйте эти проверки в начале конвейера, чтобы убедиться, что загрузка данных дала ожидаемое количество строк, прежде чем продолжать анализ.

import pandas as pd

s = pd.Series(range(10))
print(len(s))     # 10
print(s.shape)    # (10,)
print(s.size)     # 10
print(s.ndim)     # 1

Преобразование Series в другие типы

Series можно преобразовать обратно в список Python с помощью s.tolist(), в массив NumPy с помощью s.to_numpy() или s.values, а также в словарь с помощью s.to_dict(). Эти преобразования полезны для совместимости с библиотеками, которые не принимают объекты Pandas, а также для сериализации результатов в JSON или CSV.

import pandas as pd

s = pd.Series([10, 20, 30], index=['a', 'b', 'c'])
print(s.tolist())      # [10, 20, 30]
print(s.to_numpy())    # [10 20 30]
print(s.to_dict())     # {'a': 10, 'b': 20, 'c': 30}

Series и столбец DataFrame

Один столбец DataFrame — это Series. При обращении к df['col'] Pandas возвращает Series с тем же индексом, что и у DataFrame. И наоборот, Series с атрибутом name можно напрямую вставить в DataFrame как столбец. Понимание этой связи помогает свободно переходить между операциями с Series и DataFrames.

import pandas as pd

df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})
col = df['a']           # Series
print(type(col))        # <class 'pandas.core.series.Series'>
print(col.values)       # [1 2 3]

Быстрая проверка

Проверьте, насколько Вы поняли создание Series в Pandas из этого урока.

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

В этом уроке Вы узнали: Series — это одномерный массив с метками, построенный на ndarray из NumPy, его можно создать из списков, словарей, массивов NumPy или скалярных значений, а выравнивание индексов автоматически выполняет арифметические операции по меткам между двумя Series. Далее мы рассмотрим обращение к элементам Series по метке с помощью .loc и по позиции с помощью .iloc.

Можно начать бесплатно

Изучай Python с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «Создание Series» бесплатный?

Да — полный текст урока «Создание Series» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Pandas & NumPy Academy, подпишись на CoddyKit PRO. Курс Pandas & NumPy Academy содержит 4 уроков всего.

Чему я научусь в уроке «Создание Series»?

Создайте Series Pandas из списка Python, словаря и массива NumPy и изучите её атрибуты index и values Ты практикуешь Pandas & NumPy Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Pandas & NumPy Academy?

Предыдущий опыт не требуется. Pandas & NumPy Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Создание Series»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Pandas & NumPy Academy?

Да. Каждый урок Pandas & NumPy Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Создание Series
  2. Доступ по меткам и позициям
  3. Векторизованные операции над Series
  4. Полезные методы Series
← Назад к Pandas & NumPy Academy