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.