Какие существуют способы создания 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: int64

 

3. С пользовательскими индексами

Задание индексов явно:

s = pd.Series(data, index=['a', 'b', 'c', 'd'])
print(s)

Вывод:

a    1
b    2
c    3
d    4
dtype: int64

 

4. Из списка

Можно использовать обычный список Python:

s = pd.Series(['apple', 'banana', 'cherry'])
print(s)

Вывод:

0     apple
1    banana
2    cherry
dtype: object

 

5. Из словаря

Ключи словаря станут индексами Series:

data = {'a': 10, 'b': 20, 'c': 30}
s = pd.Series(data)
print(s)

Вывод:

a    10
b    20
c    30
dtype: int64

 

6. Из скалярного значения

Если передать одно значение и список индексов, оно будет дублироваться:

s = pd.Series(5, index=[0, 1, 2, 3])
print(s)

Вывод:

0    5
1    5
2    5
3    5
dtype: int64

 

7. Использование 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: float64

 

8. Использование range()

Можно создать Series на основе range():

s = pd.Series(range(5))
print(s)

Вывод:

0    0
1    1
2    2
3    3
4    4
dtype: int64

 

9. Через 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 с уже заданными индексами.

Уровень

  • Рейтинг:

    2

  • Сложность:

    2

Навыки

  • Pandas

Подпишись на Data Science в телеграм