Создание Series
Создайте Series Pandas из списка Python, словаря и массива NumPy и изучите её атрибуты index и values
«Создание 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 — локальная установка не требуется.