Какие существуют способы создания Series в Pandas?
Этот вопрос проверяет понимание различных способов создания Series в Pandas и их отличий.
Короткий ответ
В Pandas Series можно создать разными способами:
- Пустая серия (pd.Series()) создаёт пустой объект.
- Из массива NumPy (pd.Series(np.array([...]))) позволяет использовать массив NumPy.
- С собственным индексом (pd.Series([...], index=[...])) задаёт кастомные индексы.
- Из списка (pd.Series([...])) использует обычный список Python.
- Из словаря (pd.Series({ключ: значение})) создаёт серию с индексами-ключами.
- Из скалярного значения (pd.Series(значение, index=[...])) создаёт серию с повторяющимся значением.
- С помощью функций NumPy (pd.Series(np.linspace(...))) генерирует данные с NumPy.
- Через range() или list comprehension (pd.Series(range(...))) создаёт последовательность.
Длинный ответ
В Pandas Series — это одномерная структура данных, похожая на массив или список, но с возможностью задания индексов. Рассмотрим основные способы её создания:
1. Пустая Series
Создаётся вызовом конструктора Series() без параметров:
import pandas as pd
s = pd.Series()
print(s) Вывод:
Series([], dtype: float64)2. Из массива NumPy
Можно использовать массив NumPy:
import numpy as np
data = np.array([1, 2, 3, 4])
s = pd.Series(data)
print(s)Вывод:
0 1
1 2
2 3
3 4
dtype: int643. С пользовательскими индексами
Задание индексов явно:
s = pd.Series(data, index=['a', 'b', 'c', 'd'])
print(s)Вывод:
a 1
b 2
c 3
d 4
dtype: int644. Из списка
Можно использовать обычный список Python:
s = pd.Series(['apple', 'banana', 'cherry'])
print(s)Вывод:
0 apple
1 banana
2 cherry
dtype: object5. Из словаря
Ключи словаря станут индексами Series:
data = {'a': 10, 'b': 20, 'c': 30}
s = pd.Series(data)
print(s)Вывод:
a 10
b 20
c 30
dtype: int646. Из скалярного значения
Если передать одно значение и список индексов, оно будет дублироваться:
s = pd.Series(5, index=[0, 1, 2, 3])
print(s)Вывод:
0 5
1 5
2 5
3 5
dtype: int647. Использование NumPy-функций
Можно создавать Series, используя функции NumPy:
s = pd.Series(np.linspace(0, 10, 5)) # 5 значений от 0 до 10
print(s)Вывод:
0 0.0
1 2.5
2 5.0
3 7.5
4 10.0
dtype: float648. Использование range()
Можно создать Series на основе range():
s = pd.Series(range(5))
print(s)Вывод:
0 0
1 1
2 2
3 3
4 4
dtype: int649. Через list comprehension
Можно комбинировать range() и list comprehension:
s = pd.Series([x ** 2 for x in range(5)], index=['a', 'b', 'c', 'd', 'e'])
print(s)Вывод:
a 0
b 1
c 4
d 9
e 16
dtype: int64Вывод
Создавать Series можно разными способами, выбор зависит от типа исходных данных. Если у вас уже есть массив NumPy, то удобнее использовать pd.Series(np.array([...])). Если данные представлены в виде словаря, то можно создать Series с уже заданными индексами.