Коротко
pd.Series(данные, index=…, name=…)— значения плюс индекс. Безindexметки — 0, 1, 2…- Из словаря ключи становятся индексом. Из одного значения с
index— это значение повторяется. s["метка"]— по метке,s.iloc[i]— по позиции,s[s > 0]— по условию.s.index— метки,s.to_numpy()— значения как массив NumPy,s.name— имя (станет именем столбца в DataFrame).- Пропуск в целых числах превращает весь Series в
float64, потому чтоNaN— это float.
Синтаксис
pd.Series(data, index=None, dtype=None, name=None)
s["метка"], s.iloc[0]
s.index, s.to_numpy(), s.name, s.dtypeПараметры
ПараметрЧто делаетПо умолчанию
dataсписок, массив, словарь или одно значениеобязательныйindexметки; длина должна совпадать с даннымиRangeIndex 0…n−1dtypeтип значений, например "int64", "float64", "str", "category"по даннымnameимя SeriesNoneПримеры
pd.Series([12, 15, 9]) # индекс по умолчанию 0, 1, 2Вывод
0 12 1 15 2 9 dtype: int64
visits = pd.Series([120, 85, 240], index=["пн", "вт", "ср"], name="visits")
visitsВывод
пн 120 вт 85 ср 240 Name: visits, dtype: int64
pd.Series({"Омск": 1.2, "Тула": 0.5, "Сочи": 0.4}) # ключи стали индексомВывод
Омск 1.2 Тула 0.5 Сочи 0.4 dtype: float64
pd.Series(0, index=["a", "b", "c"])Вывод
a 0 b 0 c 0 dtype: int64
visits = pd.Series([120, 85, 240], index=["пн", "вт", "ср"])
print(visits["вт"]) # по метке
print(visits.iloc[0]) # по позиции
visits[visits > 100] # по условиюВывод
85 120 пн 120 ср 240 dtype: int64
visits = pd.Series([120, 85, 240], index=["пн", "вт", "ср"], name="visits")
print(visits.index)
print(visits.to_numpy())
visits.name, visits.dtypeВывод
Index(['пн', 'вт', 'ср'], dtype='str')
[120 85 240]
('visits', dtype('int64'))Подводные камни
s[0] — это метка, а не позиция
visits = pd.Series([120, 85, 240], index=["пн", "вт", "ср"])
visits[0] # 0 — это метка, а такой метки нетОшибка
KeyError: 0
Пропуск меняет тип целых
None в списке целых превращается в NaN, и столбец становится float64. Чтобы сохранить целые с пропусками, используйте тип "Int64" — см. типы данных.
pd.Series([3, None, 5]) # пропуск превращает целые в floatВывод
0 3.0 1 NaN 2 5.0 dtype: float64