🧸 Пандас для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²: Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ функция get_dummies()

"get_dummies" - это функция Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ Pandas, которая ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π² числовой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. Она создаСт Π½ΠΎΠ²Ρ‹Π΅ столбцы Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π΄Π°Π½Π½Ρ‹Ρ… для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΈ заполняСт ΠΈΡ… значСниями 0 ΠΈΠ»ΠΈ 1, Π² зависимости ΠΎΡ‚ наличия ΠΈΠ»ΠΈ отсутствия этой ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π² исходных Π΄Π°Π½Π½Ρ‹Ρ….

import pandas as pd

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌΠ° с ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ
data = {'Π¦Π²Π΅Ρ‚': ['ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ', 'Π‘ΠΈΠ½ΠΈΠΉ', 'Π—Π΅Π»Π΅Π½Ρ‹ΠΉ', 'ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ']}
df = pd.DataFrame(data)

# ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ get_dummies
df_encoded = pd.get_dummies(df)

print(df_encoded)

Π’ этом ΠΊΠΎΠ΄Π΅ ΠΌΡ‹ создаСм Π΄Π°Ρ‚Π°Ρ„Ρ€Π΅ΠΉΠΌ с ΠΎΠ΄Π½ΠΈΠΌ столбцом "Π¦Π²Π΅Ρ‚", содСрТащим ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ get_dummies для прСобразования этого столбца Π² числовой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, создавая Π½ΠΎΠ²Ρ‹Π΅ столбцы "Π¦Π²Π΅Ρ‚_ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ", "Π¦Π²Π΅Ρ‚_Π‘ΠΈΠ½ΠΈΠΉ" ΠΈ "Π¦Π²Π΅Ρ‚_Π—Π΅Π»Π΅Π½Ρ‹ΠΉ" с значСниями 0 ΠΈΠ»ΠΈ 1 Π² зависимости ΠΎΡ‚ наличия ΠΈΠ»ΠΈ отсутствия ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ Π² исходных Π΄Π°Π½Π½Ρ‹Ρ….

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

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ функция get_dummies Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ pandas

Ѐункция get_dummies() Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ pandas ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для прСобразования ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Π΄Π°ΠΌΠΌΠΈ-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Она позволяСт ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ столбСц с ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² нСсколько столбцов с Π±ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ значСниями, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования get_dummies()

Π”Π°Π²Π°ΠΉΡ‚Π΅ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ get_dummies(). ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρƒ нас Π΅ΡΡ‚ΡŒ столбСц "Π¦Π²Π΅Ρ‚" Π² DataFrame, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ содСрТит ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ значСния - "ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ", "Π‘ΠΈΠ½ΠΈΠΉ" ΠΈ "Π—Π΅Π»Π΅Π½Ρ‹ΠΉ". ΠœΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ этот столбСц Π² Π΄Π°ΠΌΠΌΠΈ-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:

import pandas as pd

data = {'Π¦Π²Π΅Ρ‚': ['ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ', 'Π‘ΠΈΠ½ΠΈΠΉ', 'Π—Π΅Π»Π΅Π½Ρ‹ΠΉ', 'ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ', 'Π‘ΠΈΠ½ΠΈΠΉ']}
df = pd.DataFrame(data)

dummies = pd.get_dummies(df['Π¦Π²Π΅Ρ‚'])
df = pd.concat([df, dummies], axis=1)

print(df)

Π’Ρ‹Π²ΠΎΠ΄:

      Π¦Π²Π΅Ρ‚  ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ  Π‘ΠΈΠ½ΠΈΠΉ  Π—Π΅Π»Π΅Π½Ρ‹ΠΉ
0   ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ        1      0        0
1     Π‘ΠΈΠ½ΠΈΠΉ        0      1        0
2  Π—Π΅Π»Π΅Π½Ρ‹ΠΉ        0      0        1
3   ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ        1      0        0
4     Π‘ΠΈΠ½ΠΈΠΉ        0      1        0

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ прСобразования ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π½ΠΎΠ²Ρ‹Π΅ столбцы "ΠšΡ€Π°ΡΠ½Ρ‹ΠΉ", "Π‘ΠΈΠ½ΠΈΠΉ" ΠΈ "Π—Π΅Π»Π΅Π½Ρ‹ΠΉ", ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ значСния 0 ΠΈ 1, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ катСгориям.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ get_dummies()

Ѐункция get_dummies() ΠΈΠΌΠ΅Π΅Ρ‚ нСсколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для настройки прСобразования:

  • data: DataFrame ΠΈΠ»ΠΈ Series - Π΄Π°Π½Π½Ρ‹Π΅ для прСобразования.
  • prefix: str ΠΈΠ»ΠΈ список - прСфикс, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ Π½ΠΎΠ²Ρ‹Ρ… столбцов. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ прСфикс Ρ€Π°Π²Π΅Π½ None.
  • prefix_sep: str - Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ прСфиксом ΠΈ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π½ΠΎΠ²Ρ‹Ρ… столбцов. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Ρ€Π°Π²Π΅Π½ '_'.
  • dummy_na: bool - Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π»ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ столбСц для ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π°Π²Π½ΠΎ False.
  • columns: список - список столбцов для прСобразования. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ всС столбцы с ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ значСниями Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½Ρ‹.

Π­Ρ‚ΠΎ лишь Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ get_dummies(). ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈ ΠΈΡ… описания ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ pandas.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ get_dummies()

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Π΄Π°ΠΌΠΌΠΈ-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π·Π°Π΄Π°Ρ‡Π°Ρ… машинного обучСния ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…. НСкоторыС прСимущСства использования get_dummies() Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚:

  • ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² числовой Ρ„ΠΎΡ€ΠΌΠ΅, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ машинного обучСния.
  • Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Ρ… (Π΄Π°ΠΌΠΌΠΈ) ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π±Π΅Π· нСобходимости Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ.
  • ΠŸΡ€ΠΎΡΡ‚ΠΎΡ‚Π° использования ΠΈ интСграция с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ функциями ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pandas.

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

Ѐункция get_dummies() Π² Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ pandas прСдоставляСт ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ способ прСобразования ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² Π΄Π°ΠΌΠΌΠΈ-ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅. Она ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Π·Π°Π΄Π°Ρ‡Π°Ρ… машинного обучСния ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° Π΄Π°Π½Π½Ρ‹Ρ…. Зная основы использования этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π²Ρ‹ смоТСтС Π»Π΅Π³ΠΊΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ свои Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π² Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… этапах Π°Π½Π°Π»ΠΈΠ·Π°.

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

Pandas Get Dummies | pd.get_dummies() For Categorical Variables (Python coding)

Why NEVER use pandas' get dummies for creating dummy variables | Machine Learning

How do I create dummy variables in pandas?

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

🧸 Пандас для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ²: Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ функция get_dummies()