Pandas Series

Series — это одномерная маркированная структура данных. Можно представлять её как столбец из DataFrame или как словарь, в котором значения упорядочены и имеют общий тип. У каждого элемента есть метка (index) и значение (value).

Когда использовать

  • Одна метрика по времени (температура, напряжение, обороты).

  • Один столбец, выделенный из таблицы для последующего анализа.

  • Промежуточный результат — например, итог groupby.

Пример 1. Создание из списка

import pandas as pd

s = pd.Series([22.1, 22.3, 22.5, 22.4])
print(s)

Output:

0    22.1
1    22.3
2    22.5
3    22.4
dtype: float64

Если индекс не задан явно, Pandas создаёт целочисленный 0..N-1.

Пример 2. Свой индекс

import pandas as pd

s = pd.Series([3.7, 3.6, 3.5], index=["bot1", "bot2", "bot3"], name="battery")
print(s)
print("Напряжение bot2:", s["bot2"])

Output:

bot1    3.7
bot2    3.6
bot3    3.5
Name: battery, dtype: float64
Напряжение bot2: 3.6

Пример 3. Series из словаря

import pandas as pd

prices = {"resistor": 5, "led": 12, "button": 30}
s = pd.Series(prices, name="price_kzt")
print(s)

Output:

resistor     5
led         12
button      30
Name: price_kzt, dtype: int64

Пример 4. Векторные операции

import pandas as pd

temp_c = pd.Series([20, 25, 30])
temp_f = temp_c * 9 / 5 + 32
print(temp_f)

Output:

0    68.0
1    77.0
2    86.0
dtype: float64

Операция применилась к каждому элементу без цикла.

Пример 5. Логические маски

import pandas as pd

s = pd.Series([22, 35, 19, 41])
print(s[s > 30])

Output:

1    35
3    41
dtype: int64

Пример 6. Статистика

import pandas as pd

s = pd.Series([12, 18, 25, 30, 27])
print("mean:", s.mean())
print("max:", s.max())
print("std:", round(s.std(), 3))

Output:

mean: 22.4
max: 30
std: 7.301

Пример 7. apply для своей функции

import pandas as pd

s = pd.Series([12, 18, 25])
labels = s.apply(lambda x: "близко" if x < 20 else "далеко")
print(labels)

Output:

0    близко
1    близко
2    далеко
dtype: object

Подводные камни

  • Series сохраняет один общий dtype — если смешать строки и числа, тип станет object и векторная арифметика будет медленной.

  • Доступ s[1] неоднозначен, если индекс целочисленный, но не 0..N. Используйте s.loc[label] и s.iloc[pos].

См. также

Примечание

Лицензия и источники

Техническое описание адаптировано из официальной документации Pandas (https://pandas.pydata.org/docs/), BSD-3-Clause License. Перевод на русский, примеры и пояснения — © AlashEd Wiki.