Главная страница » Доступ к элементам series с использованием loc или iloc python

Доступ к элементам series с использованием loc или iloc python

В библиотеке pandas для доступа к элементам объекта Series (и DataFrame) используются два основных индексатора: .loc и. iloc. Они предоставляют гибкие и мощные способы выбора данных.

Series — это одномерный массив, способный хранить данные любого типа (целые числа, строки, числа с плавающей запятой, объекты Python и т. д.). Он имеет как значения, так и ассоциированный с ними индекс.

.locДоступ По Метке (label-based indexing)

    loc используется для выбора данных По меткам (лейблам) индекса. Он включает Конечную метку при нарезке (слайсинге). Может использоваться как с числовыми, так и с нечисловыми индексами.

Синтаксис:

Python

Series. loc[label]

Series. loc[[label1, label2, …]]

Series. loc[start_label:end_label]

Series. loc[boolean_array]

Примеры:

Python

Import pandas as pd

# Series с пользовательским строковым индексом

S1 = pd. Series([10, 20, 30, 40, 50], index=[‘a’, ‘b’, ‘c’, ‘d’, ‘e’])

Print("Series s1:\n", s1)

# Series с числовым индексом по умолчанию

S2 = pd. Series([100, 200, 300, 400, 500])

Print("\nSeries s2:\n", s2)

Print("\n— Использование. loc —")

# 1. Доступ к одному элементу по метке

Print("\nДоступ к ‘c’ в s1:", s1.loc[‘c’]) # Вывод: 30

Print("Доступ к 2 в s2:", s2.loc[2]) # Вывод: 300

# 2. Доступ к нескольким элементам по списку меток

Print("\nДоступ к [‘a’, ‘c’] в s1:\n", s1.loc[[‘a’, ‘c’]])

# Вывод:

# a 10

# c 30

# dtype: int64

# 3. Нарезка (слайсинг) по меткам (включая конечную метку!)

Print("\nНарезка от ‘b’ до ‘d’ в s1:\n", s1.loc[‘b’:’d’])

# Вывод:

# b 20

# c 30

# d 40

# dtype: int64

Print("\nНарезка от 1 до 3 в s2:\n", s2.loc[1:3])

# Вывод:

# 1 200

# 2 300

# 3 400

# dtype: int64

# 4. Булева индексация (фильтрация)

Print("\nЭлементы s1 > 25:\n", s1.loc[s1 > 25])

# Вывод:

# c 30

# d 40

# e 50

# dtype: int64

.iloc — Доступ по целочисленной позиции (integer-location based indexing)

    iloc используется для выбора данных По целочисленным позициям (индексам) элементов, начиная с 0. Он Не включает конечную позицию при нарезке (как в стандартном Python-слайсинге). Всегда работает с числовыми позициями, независимо от типа индекса Series.

Синтаксис:

Python

Series. iloc[integer_position]

Series. iloc[[pos1, pos2, …]]

Series. iloc[start_pos:end_pos]

Series. iloc[boolean_array]

Примеры:

Python

Import pandas as pd

# Series с пользовательским строковым индексом

S1 = pd. Series([10, 20, 30, 40, 50], index=[‘a’, ‘b’, ‘c’, ‘d’, ‘e’])

Print("Series s1:\n", s1)

# Series с числовым индексом по умолчанию

S2 = pd. Series([100, 200, 300, 400, 500])

Print("\nSeries s2:\n", s2)

Print("\n— Использование. iloc —")

# 1. Доступ к одному элементу по целочисленной позиции

Print("\nДоступ к элементу по позиции 2 в s1:", s1.iloc[2]) # Вывод: 30 (‘c’)

Print("Доступ к элементу по позиции 2 в s2:", s2.iloc[2]) # Вывод: 300 (значение на индексе 2)

# 2. Доступ к нескольким элементам по списку позиций

Print("\nДоступ к элементам по позициям [0, 2] в s1:\n", s1.iloc[[0, 2]])

# Вывод:

# a 10

# c 30

# dtype: int64

# 3. Нарезка (слайсинг) по позициям (исключая конечную позицию!)

Print("\nНарезка от позиции 1 до 3 (не включая) в s1:\n", s1.iloc[1:3])

# Вывод:

# b 20

# c 30

# dtype: int64

Print("\nНарезка от позиции 1 до 3 (не включая) в s2:\n", s2.iloc[1:3])

# Вывод:

# 1 200

# 2 300

# dtype: int64

# 4. Булева индексация (фильтрация) — работает так же, как с. loc

Print("\nЭлементы s1 > 25 (iloc):\n", s1.iloc[s1.values > 25]) # s1.values возвращает массив NumPy для сравнения

# Вывод:

# c 30

# d 40

# e 50

# dtype: int64

Ключевые различия и когда что использовать:

Feature

.loc

.iloc

Основа доступа

Метки (лейблы) индекса

Целочисленные позиции (0-based)

Слайсинг

Включает Конечную метку

Исключает Конечную позицию

Тип индекса

Работает с любым типом индекса Series

Работает только с целочисленными позициями

Лучше для

Когда вам нужны данные по их именам/меткам

Когда вам нужны данные по их абсолютному положению

В основном, если вы знаете имя (метку) элемента, который хотите выбрать, используйте. loc. Если вы знаете его порядковый номер (позицию) в Series, используйте. iloc.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх