🐼 Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ pandas loc ΠΈ iloc: ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ pandas loc ΠΈ iloc Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡŽΡ‚ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² DataFrame.

loc ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для доступа ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΊΠ΅ (названию) строк ΠΈ столбцов. НапримСр:

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})

# Доступ ΠΊ строкС ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΊΠ΅
row = df.loc[1]
print(row)

# Доступ ΠΊ элСмСнту ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΊΠ΅ строки ΠΈ столбца
element = df.loc[2, 'B']
print(element)

iloc ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для доступа ΠΏΠΎ числовому индСксу строк ΠΈ столбцов, начиная с нуля. НапримСр:

# Доступ ΠΊ строкС ΠΏΠΎ числовому индСксу
row = df.iloc[1]
print(row)

# Доступ ΠΊ элСмСнту ΠΏΠΎ числовому индСксу строки ΠΈ столбца
element = df.iloc[2, 1]
print(element)

ΠšΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ loc ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ΅Ρ‚ΠΊΠΈ (названия), Π° iloc ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ числовыС индСксы.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Pandas loc ΠΈ iloc: Π² Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°?

Pandas - это мощная Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…, которая прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹Π΅ срСдства для манипулирования ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π”Π²Π° основных ΠΌΠ΅Ρ‚ΠΎΠ΄Π° для доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² Pandas - это loc ΠΈ iloc. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, Π² Ρ‡Π΅ΠΌ ΠΈΡ… Ρ€Π°Π·Π½ΠΈΡ†Π° ΠΈ ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ….

ΠœΠ΅Ρ‚ΠΎΠ΄ loc

ΠœΠ΅Ρ‚ΠΎΠ΄ loc ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌ (индСксам) строк ΠΈ столбцов. Он позволяСт Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° основС ΠΈΡ… ΠΌΠ΅Ρ‚ΠΎΠΊ, Π° Π½Π΅ ΠΈΡ… ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

import pandas as pd

data = {'Name': ['John', 'Jane', 'Mike'],
        'Age': [25, 30, 35],
        'City': ['New York', 'Los Angeles', 'Chicago']}

df = pd.DataFrame(data)

print(df.loc[0])  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создали DataFrame с трСмя столбцами (Name, Age, City) ΠΈ трСмя строками. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ loc, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ строкС с индСксом 0, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдставляСт собой ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку Π² DataFrame.

ΠœΠ΅Ρ‚ΠΎΠ΄ iloc

ΠœΠ΅Ρ‚ΠΎΠ΄ iloc, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° loc, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎ ΠΈΡ… ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (цСлочислСнным индСксам). Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ позволяСт Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° основС ΠΈΡ… ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ Π² DataFrame. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

import pandas as pd

data = {'Name': ['John', 'Jane', 'Mike'],
        'Age': [25, 30, 35],
        'City': ['New York', 'Los Angeles', 'Chicago']}

df = pd.DataFrame(data)

print(df.iloc[0])  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку

Π—Π΄Π΅ΡΡŒ ΠΌΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ создали DataFrame с трСмя столбцами ΠΈ трСмя строками. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ iloc, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ строкС с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠ΅ΠΉ 0, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку Π² DataFrame.

Различия ΠΌΠ΅ΠΆΠ΄Ρƒ loc ΠΈ iloc

Π“Π»Π°Π²Π½ΠΎΠ΅ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ loc ΠΈ iloc Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π²Ρ‹Π±ΠΈΡ€Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅. Когда ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ loc, ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΌΠ΅Ρ‚ΠΊΠΈ (индСксы) строк ΠΈ столбцов для Π²Ρ‹Π±ΠΎΡ€Π° Π΄Π°Π½Π½Ρ‹Ρ…, Π² Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ использовании iloc ΠΌΡ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅ΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ (цСлочислСнныС индСксы).

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании loc ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ ΠΌΠ΅Ρ‚ΠΎΠΊ, Π° ΠΏΡ€ΠΈ использовании iloc ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Ρ‹ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

import pandas as pd

data = {'Name': ['John', 'Jane', 'Mike'],
        'Age': [25, 30, 35],
        'City': ['New York', 'Los Angeles', 'Chicago']}

df = pd.DataFrame(data)

print(df.loc[0:1])  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ строки
print(df.iloc[0:1])  # Π’Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку

Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ использовали ΠΌΠ΅Ρ‚ΠΎΠ΄ loc с Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΎΠΊ ΠΎΡ‚ 0 Π΄ΠΎ 1, ΠΈ ΠΎΠ½ Π²Ρ‹Π²Π΅Π» ΠΏΠ΅Ρ€Π²Ρ‹Π΅ Π΄Π²Π΅ строки DataFrame. Π’ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ использовали ΠΌΠ΅Ρ‚ΠΎΠ΄ iloc с Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΎΠΌ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΉ ΠΎΡ‚ 0 Π΄ΠΎ 1, ΠΈ ΠΎΠ½ Π²Ρ‹Π²Π΅Π» Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку.

Π’Ρ‹Π²ΠΎΠ΄

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли Ρ€Π°Π·Π½ΠΈΡ†Ρƒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ loc ΠΈ iloc Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Pandas. ΠœΠ΅Ρ‚ΠΎΠ΄ loc ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎ ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌ (индСксам), Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ iloc ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎ позициям (цСлочислСнным индСксам). Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· этих ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π΅ΡΡ‚ΡŒ свои особСнности ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ эффСктивно ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Pandas.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ элСмСнтам Series. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ loc ΠΈ iloc

Π£Ρ€ΠΎΠΊΠΈ Pandas: ΠœΠΎΡ‰Π½Ρ‹Π΅ инструмСнты индСксации Π² Pandas: РазбираСмся Π² loc ΠΈ iloc. Π£Ρ€ΠΎΠΊ 9

Π€ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ Π΄Π°Π½Π½Ρ‹Ρ… Π² Pandas | Анатолий ΠšΠ°Ρ€ΠΏΠΎΠ² | karpov.courses

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

🐼 Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ pandas loc ΠΈ iloc: ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ?