πŸ” Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ индСксации Π² Pandas

Для добавлСния названия индСкса Π² pandas, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ "name" Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° индСкса. НапримСр:

    import pandas as pd
    
    # Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ DataFrame
    data = {'Имя': ['Алиса', 'Π‘ΠΎΠ±', 'ΠšΠ°Ρ€Π»'],
            'Возраст': [25, 30, 35],
            'Π“ΠΎΡ€ΠΎΠ΄': ['Москва', 'Π‘Π°Π½ΠΊΡ‚-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³', 'Казань']}
    df = pd.DataFrame(data)
    
    # ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ названия индСксу
    df.index.name = 'β„–'
    
    # Π’Ρ‹Π²ΠΎΠ΄ DataFrame с Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ индСкса
    print(df)
    

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

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ индСксации Π² Pandas

Π’ Pandas, индСксация прСдставляСт собой способ доступа ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ DataFrame ΠΈΠ»ΠΈ Series. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ индСксация осущСствляСтся с использованиСм цСлочислСнных Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ собствСнныС ΠΈΠΌΠ΅Π½Π° индСксов для удобства Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ я расскаТу, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° индСксации Π² Pandas.

ИспользованиС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° set_index()

ΠœΠ΅Ρ‚ΠΎΠ΄ set_index() позволяСт Π·Π°Π΄Π°Ρ‚ΡŒ столбСц(Ρ‹) Π² DataFrame Π² качСствС индСкса. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:

import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ DataFrame
data = {'Имя': ['Анна', 'Борис', 'Виктория', 'Π“Π΅ΠΎΡ€Π³ΠΈΠΉ'],
        'Возраст': [25, 30, 35, 40],
        'Π—Π°Ρ€ΠΏΠ»Π°Ρ‚Π°': [50000, 60000, 70000, 80000]}

df = pd.DataFrame(data)

# Установка столбца 'Имя' Π² качСствС индСкса
df.set_index('Имя', inplace=True)

print(df)

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

          Возраст  Π—Π°Ρ€ΠΏΠ»Π°Ρ‚Π°
Имя                       
Анна           25     50000
Борис          30     60000
Виктория       35     70000
Π“Π΅ΠΎΡ€Π³ΠΈΠΉ        40     80000

Π’Π΅ΠΏΠ΅Ρ€ΡŒ столбСц 'Имя' стал индСксом DataFrame. Помимо указания ΠΎΠ΄Π½ΠΎΠ³ΠΎ столбца, ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ список столбцов Π² качСствС Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° set_index(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ составной индСкс.

Установка ΠΈΠΌΠ΅Π½ индСксации

ПослС установки индСкса Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° индСксных ΠΌΠ΅Ρ‚ΠΎΠΊ. Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ name Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° индСкса:

import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ DataFrame
data = {'Имя': ['Анна', 'Борис', 'Виктория', 'Π“Π΅ΠΎΡ€Π³ΠΈΠΉ'],
        'Возраст': [25, 30, 35, 40],
        'Π—Π°Ρ€ΠΏΠ»Π°Ρ‚Π°': [50000, 60000, 70000, 80000]}

df = pd.DataFrame(data)

# Установка столбца 'Имя' Π² качСствС индСкса
df.set_index('Имя', inplace=True)

# Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ индСкса
df.index.name = 'Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ'

print(df)

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

           Возраст  Π—Π°Ρ€ΠΏΠ»Π°Ρ‚Π°
Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ                       
Анна            25     50000
Борис           30     60000
Виктория        35     70000
Π“Π΅ΠΎΡ€Π³ΠΈΠΉ         40     80000

Π’Π΅ΠΏΠ΅Ρ€ΡŒ индСкс ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ 'Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ'. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ Π΄Ρ€ΡƒΠ³ΡƒΡŽ строку вмСсто 'Π‘ΠΎΡ‚Ρ€ΡƒΠ΄Π½ΠΈΠΊ' Π² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅.

Бброс индСксации

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ ΠΈ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ DataFrame ΠΊ ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ с числовыми индСксами, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ reset_index(). ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования:

import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ DataFrame
data = {'Имя': ['Анна', 'Борис', 'Виктория', 'Π“Π΅ΠΎΡ€Π³ΠΈΠΉ'],
        'Возраст': [25, 30, 35, 40],
        'Π—Π°Ρ€ΠΏΠ»Π°Ρ‚Π°': [50000, 60000, 70000, 80000]}

df = pd.DataFrame(data)

# Установка столбца 'Имя' Π² качСствС индСкса
df.set_index('Имя', inplace=True)

# Бброс индСксации
df.reset_index(inplace=True)

print(df)

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

     Имя  Возраст  Π—Π°Ρ€ΠΏΠ»Π°Ρ‚Π°
0    Анна       25     50000
1   Борис       30     60000
2    Виктория       35     70000
3  Π“Π΅ΠΎΡ€Π³ΠΈΠΉ        40     80000

Π’Π΅ΠΏΠ΅Ρ€ΡŒ индСксация Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΈΠ»Π°ΡΡŒ ΠΊ исходному ΡΠΎΡΡ‚ΠΎΡΠ½ΠΈΡŽ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π° индСксации Π² Pandas. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ set_index(), Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ столбцы Π² качСствС индСкса ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΡ… ΠΈΠΌΠ΅Π½Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° name. Если Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΈΠ½Π΄Π΅ΠΊΡΠ°Ρ†ΠΈΡŽ, ΠΌΠ΅Ρ‚ΠΎΠ΄ reset_index() ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это. НадСюсь, эта информация Π±Ρ‹Π»Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ!

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

Pandas Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ β„–6. Π˜Π½Π΄Π΅ΠΊΡΡ‹

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

Pandas Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ β„–3. ΠžΡ‚Π±ΠΎΡ€ строк ΠΈ столбцов, Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ, Π˜ΠΌΠΏΠΎΡ€Ρ‚ CSV

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

πŸ” Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ индСксации Π² Pandas