Mengonversi variabel kategori menjadi dummy python

Dalam tutorial ini, saya akan menunjukkan cara menggunakan fungsi Panda get dummies untuk membuat variabel dummy dengan Python

Saya akan menjelaskan apa fungsinya, menjelaskan sintaks pd. get_dummies, dan tunjukkan contoh langkah demi langkah

Jika Anda memerlukan sesuatu yang spesifik, cukup klik salah satu tautan berikut

Daftar isi

Baik. Sebelum kita melihat sintaks dan contohnya, mari kita lihat ikhtisar singkat tentang apa fungsi tersebut

Pengantar Cepat tentang Panda Get Dummies

Fungsi getdummies Pandas membuat variabel dummy dari objek Pandas dengan Python

Untuk memahami ini, mari kita tinjau dasar-dasar “pengodean dummy. ”

Variabel Dummy Menyandikan Informasi Kategorikal

Jadi apa sebenarnya variabel dummy itu?

Variabel dummy adalah variabel numerik yang mengkodekan informasi kategorikal

Variabel dummy memiliki dua kemungkinan nilai. 0 atau 1

Dalam variabel dummy

  • A 1 mengkodekan keberadaan kategori
  • A 0 mengkodekan tidak adanya kategori

Kami sering menyebut variabel 0/1 ini sebagai variabel "dummy", tetapi terkadang juga disebut variabel indikator. Dalam pembelajaran mesin, ini juga kadang-kadang disebut sebagai pengkodean data kategoris "satu-panas".

Pandas Get Dummies Membuat Variabel Dummy dari Data Kategorikal

Sekarang setelah Anda memahami apa itu variabel dummy, mari kita bicara tentang fungsi Pandas get_dummies

Seperti yang Anda duga, pd. get_dummies membuat variabel dummy

Yang penting, pd. get_dummies dapat membuat variabel tiruan dari Seri Pandas, atau dari kolom atau kolom dalam kerangka data Pandas

Kami akan melihat keduanya

Variabel dummy penting untuk Machine Learning

Sebelum kita melihat sintaks pd. get_dummies, saya ingin berkomentar tentang mengapa kita membutuhkan variabel dummy

Beberapa alat ilmu data hanya akan berfungsi jika data masukan berupa angka. Ini terutama berlaku untuk pembelajaran mesin. Banyak algoritme pembelajaran mesin – seperti regresi linier dan regresi logistik – sangat membutuhkan data input numerik. Jika Anda mencoba menggunakannya dengan data kategorikal berbasis string, mereka akan menimbulkan kesalahan

Jadi sebelum Anda menggunakan alat tersebut, Anda perlu menyandikan data kategori Anda sebagai variabel dummy numerik

Sejujurnya, ini adalah salah satu langkah pembersihan data yang sering membuat ilmuwan data dan insinyur pembelajaran mesin frustrasi

Tapi kabar baiknya adalah Panda mendapatkan fungsi dummies membuatnya relatif mudah dilakukan

Mari kita lihat fungsinya

Sintaks Panda Get Dummies

Di sini, kita akan melihat sintaks fungsi Pandas

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
0

Pengingat cepat

Sebelum kita melihat sintaks, saya ingin mengingatkan Anda bahwa penjelasan sintaks ini mengasumsikan bahwa Anda telah mengimpor Panda

Anda dapat mengimpor Panda seperti ini

import pandas as pd
_

Ini juga mengasumsikan bahwa Anda memiliki Seri Panda atau kerangka data yang dapat Anda gunakan

[Kami benar-benar akan membuat kerangka data dan Seri. ]

Sintaks pd. get_dummies

Sintaks Panda mendapatkan boneka sangat sederhana

Anda memanggil fungsi sebagai

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
1

Di dalam tanda kurung, argumen pertama adalah objek yang ingin Anda operasikan. Ini akan menjadi kerangka data Pandas atau Seri Pandas

Ada juga beberapa parameter opsional yang dapat Anda gunakan untuk mengubah cara kerja fungsi

Mari kita lihat lebih dekat pada mereka

Parameter pd. get_dummies

Panda mendapatkan fungsi dummies

  • sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                               ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                               ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                               }
                              ]
    _2
  • sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                               ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                               ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                               }
                              ]
    _3
  • sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                               ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                               ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                               }
                              ]
    _4
  • sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                               ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                               ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                               }
                              ]
    5
  • sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                               ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                               ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                               }
                              ]
    _6
  • sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                               ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                               ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                               }
                              ]
    _7
  • sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                               ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                               ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                               }
                              ]
    _8
  • sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                               ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                               ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                               }
                              ]
    _9

Mari kita lihat itu

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
_9 [wajib]

Parameter “data_object” memungkinkan Anda menentukan objek data yang ingin Anda operasikan

Ini bisa berupa kerangka data Pandas, Seri Pandas, atau objek seperti daftar [mis. e. , daftar, dll]

Yang penting, Anda menggunakan parameter ini berdasarkan posisi saja. Panda mengasumsikan bahwa argumen pertama yang Anda berikan ke fungsi harus sesuai dengan parameter ini

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
_3

Parameter

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
3 menentukan kolom yang ingin Anda ubah menjadi variabel dummy

Kolom ini hanya akan berlaku jika Anda mengoperasikan kerangka data yang memiliki banyak kolom

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
_4

Parameter

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
4 memungkinkan Anda menentukan awalan untuk nama variabel dummy baru

Secara default, awalan adalah nama variabel yang Anda ubah

Jadi jika Anda mengoperasikan variabel bernama "

print[sales_data]
5", variabel dummy baru akan dimulai dengan awalan "
print[sales_data]
5"

Anda akan melihat contohnya di bagian contoh

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
5

Parameter

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
5 memungkinkan Anda menentukan pemisah antara awalan dan kategori dummy, atas nama variabel dummy

Secara default, pemisahnya adalah “_”

Jadi jika Anda menyandikan variabel dummy yang disebut

print[sales_data]
5, dengan kategori
       name  sales region
0   William  50000   East
1      Emma  52000  North
2     Sofia  90000   East
3    Markus  34000  South
4    Edward  42000   West
5    Thomas  72000   West
6     Ethan  49000  South
7    Olivia  55000   West
8      Arun  67000   West
9     Anika  65000   East
10    Paulo  67000    NaN
0 dan
       name  sales region
0   William  50000   East
1      Emma  52000  North
2     Sofia  90000   East
3    Markus  34000  South
4    Edward  42000   West
5    Thomas  72000   West
6     Ethan  49000  South
7    Olivia  55000   West
8      Arun  67000   West
9     Anika  65000   East
10    Paulo  67000    NaN
1, maka secara default, variabel dummy keluaran akan diberi nama
       name  sales region
0   William  50000   East
1      Emma  52000  North
2     Sofia  90000   East
3    Markus  34000  South
4    Edward  42000   West
5    Thomas  72000   West
6     Ethan  49000  South
7    Olivia  55000   West
8      Arun  67000   West
9     Anika  65000   East
10    Paulo  67000    NaN
2 dan
       name  sales region
0   William  50000   East
1      Emma  52000  North
2     Sofia  90000   East
3    Markus  34000  South
4    Edward  42000   West
5    Thomas  72000   West
6     Ethan  49000  South
7    Olivia  55000   West
8      Arun  67000   West
9     Anika  65000   East
10    Paulo  67000    NaN
3. [Perhatikan karakter garis bawah pada nama variabel ini. ]

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
_6

Parameter

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
6 menentukan apakah Anda ingin membuang kategori pertama dari variabel kategori yang Anda enkode

Secara default, ini disetel ke

       name  sales region
0   William  50000   East
1      Emma  52000  North
2     Sofia  90000   East
3    Markus  34000  South
4    Edward  42000   West
5    Thomas  72000   West
6     Ethan  49000  South
7    Olivia  55000   West
8      Arun  67000   West
9     Anika  65000   East
10    Paulo  67000    NaN
6. Ini akan menyebabkan get_dummies membuat satu variabel dummy untuk setiap level dari variabel kategori masukan

Jika Anda mengatur

       name  sales region
0   William  50000   East
1      Emma  52000  North
2     Sofia  90000   East
3    Markus  34000  South
4    Edward  42000   West
5    Thomas  72000   West
6     Ethan  49000  South
7    Olivia  55000   West
8      Arun  67000   West
9     Anika  65000   East
10    Paulo  67000    NaN
_7, maka itu akan menjatuhkan kategori pertama. Jadi jika memiliki K kategori, hanya akan menghasilkan K – 1 variabel dummy

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
_7

Parameter

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
7 memungkinkan Anda menentukan apakah get_dummies akan membuat variabel dummy terpisah yang mengkodekan nilai yang hilang

Secara default, parameter ini disetel ke

region = sales_data.region
0. Dalam hal ini, get_dummies tidak akan membuat variabel dummy untuk nilai NA

Jika

region = sales_data.region
_1, get_dummies akan membuat variabel terpisah yang berisi 1 jika nilai masukan hilang, dan 0 sebaliknya

Ini bisa berguna jika data Anda memiliki nilai yang hilang, dan menurut Anda nilai yang hilang itu informatif

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
_8

Parameter

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
8 menentukan apakah variabel dummy baru didukung oleh
region = sales_data.region
4

[Ini agak jarang digunakan. ]

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
_9

Parameter dtype menentukan tipe data dari variabel dummy baru

Secara default, tipe data dari variabel dummy baru adalah

region = sales_data.region
6

Keluaran pd. get_dummies

Sebagai output, fungsi Panda get dummies akan mengembalikan kerangka data yang berisi variabel dummy baru

Contoh. Cara Membuat Variabel Dummy dengan Python menggunakan Pandas

Sekarang setelah Anda melihat sintaks untuk fungsi Panda get dummies, mari kita lihat beberapa contoh cara membuat variabel dummy dengan Python

Contoh

Jalankan kode ini terlebih dahulu

Sebelum Anda menjalankan contoh, Anda harus menjalankan beberapa kode awal

  • impor paket yang diperlukan
  • dapatkan contoh kerangka data

Mari kita lakukan masing-masing

Impor paket

Pertama, mari impor Panda dan Numpy

import pandas as pd
import numpy as np

Jelas kita membutuhkan Panda untuk menggunakan pd. fungsi get_dummies

Tapi kami akan menggunakan Numpy saat kami membuat data kami, untuk menyertakan nilai NA

Buat kerangka data contoh

Selanjutnya, kita perlu membuat kumpulan data yang dapat kita kerjakan

Di sini, kita akan membuat beberapa tiruan "data penjualan" menggunakan pd. Fungsi DataFrame, dengan kamus nilai yang akan menjadi kolom

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]

Mari cetak data untuk melihat isinya

print[sales_data]

KELUAR

       name  sales region
0   William  50000   East
1      Emma  52000  North
2     Sofia  90000   East
3    Markus  34000  South
4    Edward  42000   West
5    Thomas  72000   West
6     Ethan  49000  South
7    Olivia  55000   West
8      Arun  67000   West
9     Anika  65000   East
10    Paulo  67000    NaN

Variabel

region = sales_data.region
_7 adalah variabel kategori yang dapat kita ubah menjadi 0/1 variabel dummy

Perhatikan juga bahwa salah satu nilai dari ________31______7 adalah

region = sales_data.region
9 [i. e. , nilai yang hilang]. Ini akan menjadi penting di

Buat Seri

Kami juga akan membuat Seri Panda bernama

region = sales_data.region
7

region = sales_data.region

Variabel ini berisi kategori wilayah yang kami buat di kerangka data kami

Sekarang kita memiliki beberapa data, mari kita bekerja melalui beberapa contoh

CONTOH 1. Gunakan Getdummies pada Serial

Pertama, mari kita gunakan fungsi get dummies pada Seri Pandas

Kami akan menggunakan fungsi pada Seri

region = sales_data.region
7 yang kami buat sebelumnya

Cetak data

Pertama, mari kita cetak datanya, jadi kita bisa melihat apa yang ada di Seri

print[region]

KELUAR

0      East
1     North
2      East
3     South
4      West
5      West
6     South
7      West
8      West
9      East
10      NaN
Name: region, dtype: object

Seperti yang Anda lihat,

region = sales_data.region
_7 berisi data string yang disusun dalam 4 kategori [Utara, Selatan, Timur, dan Barat]. Ada juga nilai yang hilang di akhir seri

Gunakan pd. get_dummies

Sekarang, kita akan menggunakan fungsi Pandas get_dummies

pd.get_dummies[region]

KELUAR

    East  North  South  West
0      1      0      0     0
1      0      1      0     0
2      1      0      0     0
3      0      0      1     0
4      0      0      0     1
5      0      0      0     1
6      0      0      1     0
7      0      0      0     1
8      0      0      0     1
9      1      0      0     0
10     0      0      0     0

[Catatan. output ini sebenarnya adalah kerangka data. ]

Penjelasan

Perhatikan apa yang terjadi di sini

Keluaran pd. get_dummies adalah sekelompok 4 variabel baru

  • print[region]
    
    _3
  • print[region]
    
    _4
  • print[region]
    
    _5
  • print[region]
    
    _6

Ada satu variabel baru untuk setiap level dari variabel kategori asli

Di mana nilai adalah '

print[region]
3' di Seri asli, variabel
print[region]
3 baru memiliki nilai 1 [dan nilai untuk variabel lainnya adalah 0]

Di mana nilainya adalah '

print[region]
4' di Seri asli, variabel
print[region]
4 baru memiliki nilai 1 [dan nilai untuk variabel lainnya adalah 0]

Dan seterusnya

Jadi fungsi get_dummies telah mengode ulang satu variabel dengan 4 nilai, menjadi 4 variabel dengan nilai 0 atau 1. Struktur baru secara efektif berisi informasi yang sama, tetapi direpresentasikan dengan cara yang berbeda

CONTOH 2. Gunakan Getdummies pada kolom Dataframe

Selanjutnya, kita akan menggunakan pd. get_dummies pada kolom di dalam kerangka data

Secara khusus, kami akan menggunakan get_dummies Panda pada variabel

region = sales_data.region
7 di dalam kerangka data
0      East
1     North
2      East
3     South
4      West
5      West
6     South
7      West
8      West
9      East
10      NaN
Name: region, dtype: object
2

import pandas as pd
import numpy as np
0

KELUAR

import pandas as pd
import numpy as np
1Penjelasan

Pertama-tama, perhatikan bahwa output dari operasi adalah kerangka data baru

Dalam kerangka data baru ini, variabel ________31______7 lama hilang

Itu telah diganti dengan 4 variabel baru

  • 0      East
    1     North
    2      East
    3     South
    4      West
    5      West
    6     South
    7      West
    8      West
    9      East
    10      NaN
    Name: region, dtype: object
    
    _4
  • 0      East
    1     North
    2      East
    3     South
    4      West
    5      West
    6     South
    7      West
    8      West
    9      East
    10      NaN
    Name: region, dtype: object
    
    _5
  • 0      East
    1     North
    2      East
    3     South
    4      West
    5      West
    6     South
    7      West
    8      West
    9      East
    10      NaN
    Name: region, dtype: object
    
    _6
  • 0      East
    1     North
    2      East
    3     South
    4      West
    5      West
    6     South
    7      West
    8      West
    9      East
    10      NaN
    Name: region, dtype: object
    
    _7

Secara default, get_dummies menggunakan nama variabel lama [

region = sales_data.region
7] sebagai awalan untuk nama variabel baru

Perhatikan juga bagaimana variabel baru dikodekan

  • Di mana nilai adalah '
    print[region]
    
    3' di Seri asli, variabel
    0      East
    1     North
    2      East
    3     South
    4      West
    5      West
    6     South
    7      West
    8      West
    9      East
    10      NaN
    Name: region, dtype: object
    
    4 baru memiliki nilai 1 [dan nilai untuk variabel lainnya adalah 0]
  • Di mana nilai adalah '
    print[region]
    
    4' di Seri asli, variabel
    0      East
    1     North
    2      East
    3     South
    4      West
    5      West
    6     South
    7      West
    8      West
    9      East
    10      NaN
    Name: region, dtype: object
    
    5 baru memiliki nilai 1 [dan nilai untuk variabel lainnya adalah 0]
  • Di mana nilai adalah '
    print[region]
    
    5' di Seri asli, variabel
    0      East
    1     North
    2      East
    3     South
    4      West
    5      West
    6     South
    7      West
    8      West
    9      East
    10      NaN
    Name: region, dtype: object
    
    6 baru memiliki nilai 1 [dan nilai untuk variabel lainnya adalah 0]
  • Di mana nilai adalah '
    print[region]
    
    6' di Seri asli, variabel
    0      East
    1     North
    2      East
    3     South
    4      West
    5      West
    6     South
    7      West
    8      West
    9      East
    10      NaN
    Name: region, dtype: object
    
    7 baru memiliki nilai 1 [dan nilai untuk variabel lainnya adalah 0]

Jadi get_dummies Panda telah membuat variabel 0/1 baru untuk setiap level dari variabel kategori asli

Ini sangat mirip dengan contoh 1, tetapi alih-alih melakukan operasi ini pada Seri Panda independen, kami telah melakukan operasi pada kolom yang ada di dalam kerangka data

[Perhatikan bahwa output dari operasi ini adalah kerangka data baru. ]

CONTOH 3. Gunakan Getdummies pada kolom Dataframe, dan jatuhkan kategori pertama

Sekarang, kita akan menggunakan get_dummies, tetapi kita akan menggunakan parameter

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
6 untuk membuang level pertama dari variabel kategori yang sedang kita operasikan

Untuk melakukan ini, kami akan menetapkan

       name  sales region
0   William  50000   East
1      Emma  52000  North
2     Sofia  90000   East
3    Markus  34000  South
4    Edward  42000   West
5    Thomas  72000   West
6     Ethan  49000  South
7    Olivia  55000   West
8      Arun  67000   West
9     Anika  65000   East
10    Paulo  67000    NaN
7

import pandas as pd
import numpy as np
2

KELUAR

import pandas as pd
import numpy as np
3Penjelasan

Perhatikan bahwa output hanya memiliki 3 variabel dummy sekarang

  • region_North
  • region_South
  • region_West

Variabel dummy untuk kategori ‘

print[region]
3‘ hilang

Mengapa?

Pengaturan

       name  sales region
0   William  50000   East
1      Emma  52000  North
2     Sofia  90000   East
3    Markus  34000  South
4    Edward  42000   West
5    Thomas  72000   West
6     Ethan  49000  South
7    Olivia  55000   West
8      Arun  67000   West
9     Anika  65000   East
10    Paulo  67000    NaN
_7 menyebabkan get_dummies mengecualikan variabel dummy untuk kategori pertama dari variabel yang Anda operasikan

Tetapi mengapa kita melakukannya?

Ketika Anda memiliki variabel kategori dengan K kategori yang saling eksklusif, Anda sebenarnya hanya membutuhkan K – 1 variabel dummy baru untuk menyandikan informasi yang sama

Hal ini karena jika semua variabel dummy yang ada sama dengan 0, maka kita tahu bahwa nilai variabel dummy yang tersisa harus 1.

Jadi misalnya, jika

    East  North  South  West
0      1      0      0     0
1      0      1      0     0
2      1      0      0     0
3      0      0      1     0
4      0      0      0     1
5      0      0      0     1
6      0      0      1     0
7      0      0      0     1
8      0      0      0     1
9      1      0      0     0
10     0      0      0     0
1, dan
    East  North  South  West
0      1      0      0     0
1      0      1      0     0
2      1      0      0     0
3      0      0      1     0
4      0      0      0     1
5      0      0      0     1
6      0      0      1     0
7      0      0      0     1
8      0      0      0     1
9      1      0      0     0
10     0      0      0     0
2, dan
    East  North  South  West
0      1      0      0     0
1      0      1      0     0
2      1      0      0     0
3      0      0      1     0
4      0      0      0     1
5      0      0      0     1
6      0      0      1     0
7      0      0      0     1
8      0      0      0     1
9      1      0      0     0
10     0      0      0     0
3, maka
0      East
1     North
2      East
3     South
4      West
5      West
6     South
7      West
8      West
9      East
10      NaN
Name: region, dtype: object
4 harus sama dengan 1. Ini tersirat dari 3 variabel dummy yang ada, jadi kita tidak perlu yang ke-4. Variabel boneka ekstra secara harfiah berisi informasi yang berlebihan

Jadi, sudah menjadi konvensi umum untuk menghapus variabel dummy untuk level pertama dari variabel kategori yang Anda enkode

[Faktanya, ini sering dibutuhkan untuk beberapa jenis model pembelajaran mesin. Jika Anda gagal menghapus variabel dummy ekstra, ini dapat menyebabkan masalah pada model Anda. ]

CONTOH 4. Gunakan Getdummies pada kolom Dataframe, dan tentukan awalan untuk variabel dummy

Sekarang, kami akan membuat variabel tiruan dengan awalan tertentu

Ingat. secara default, ini menggunakan nama variabel sebagai awalan untuk variabel dummy baru

Namun di sini, kami akan menyetel

    East  North  South  West
0      1      0      0     0
1      0      1      0     0
2      1      0      0     0
3      0      0      1     0
4      0      0      0     1
5      0      0      0     1
6      0      0      1     0
7      0      0      0     1
8      0      0      0     1
9      1      0      0     0
10     0      0      0     0
5 untuk menggunakan awalan yang berbeda

import pandas as pd
import numpy as np
4

KELUAR

import pandas as pd
import numpy as np
5Penjelasan

Perhatikan bahwa sekarang, awalan untuk semua variabel dummy adalah

    East  North  South  West
0      1      0      0     0
1      0      1      0     0
2      1      0      0     0
3      0      0      1     0
4      0      0      0     1
5      0      0      0     1
6      0      0      1     0
7      0      0      0     1
8      0      0      0     1
9      1      0      0     0
10     0      0      0     0
6 [bukan hanya
region = sales_data.region
7]

Ini karena kami mengatur awalan secara manual dengan parameter

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
4

Perlu diingat, awalan bisa lebih rumit. Anda dapat menyediakan kamus nilai awalan yang sesuai dengan variabel dummy baru. Namun, 98% dari waktu, Anda hanya ingin menyetel satu awalan seperti yang kami lakukan di sini

CONTOH 5. Gunakan Getdummies pada kolom Dataframe, dan sertakan nilai NA

Terakhir, mari kita lihat cara membuat variabel dummy untuk nilai yang hilang

Anda akan melihat bahwa dalam kerangka data kami,

0      East
1     North
2      East
3     South
4      West
5      West
6     South
7      West
8      West
9      East
10      NaN
Name: region, dtype: object
2, nilai wilayah adalah
import pandas as pd
import numpy as np
00 untuk salah satu baris [baris untuk Paulo]. Ini adalah nilai yang hilang

Anda juga akan melihat bahwa pada contoh sebelumnya, untuk baris data ini, nilai untuk semua variabel dummy yang baru dibuat adalah 0

Di sini, kita akan membuat satu variabel dummy tambahan yang mengkodekan 1 untuk nilai yang hilang

Untuk melakukan ini, kami akan menetapkan

region = sales_data.region
1

import pandas as pd
import numpy as np
6

KELUAR

import pandas as pd
import numpy as np
7Penjelasan

Anda dapat melihat bahwa di output, selain membuat variabel dummy untuk setiap kategori, get_dummies juga membuat variabel yang disebut

import pandas as pd
import numpy as np
02

Nilai ini hanya memiliki 1 dimana nilai variabel yang kita operasikan memiliki nilai yang hilang [

import pandas as pd
import numpy as np
00]. Untuk semua nilai lainnya,
import pandas as pd
import numpy as np
_02 memiliki 0

Ini berguna ketika Anda memiliki data yang memiliki nilai yang hilang, dan Anda ingin menyandikan informasi tentang nilai yang hilang tersebut dalam variabel dummy baru Anda

Terkadang, ini berguna. Dalam pembelajaran mesin, terkadang kami menyebutnya “kehilangan informasi. ”

Pertanyaan umum tentang Pandas Get_dummies

Sekarang kita telah melihat beberapa contoh, mari kita lihat beberapa pertanyaan umum tentang teknik

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
0

Pertanyaan yang sering diajukan

pertanyaan 1. Saya menggunakan get_dummies, tetapi data saya tidak berubah. Mengapa?

Jika Anda menggunakan fungsi get_dummies, Anda mungkin memperhatikan bahwa data asli Anda tetap tidak berubah setelah Anda memanggil fungsi tersebut

Misalnya, di , kami menggunakan kode berikut

import pandas as pd
import numpy as np
0

Tetapi jika Anda mencentang

0      East
1     North
2      East
3     South
4      West
5      West
6     South
7      West
8      West
9      East
10      NaN
Name: region, dtype: object
2 setelah Anda menjalankan kode, Anda akan menyadari bahwa itu masih berisi variabel asli [dan variabel dummy tidak ada

Itu karena saat kita menjalankan fungsi

sales_data = pd.DataFrame[{"name":["William","Emma","Sofia","Markus","Edward","Thomas","Ethan","Olivia","Arun","Anika","Paulo"]
                           ,"sales":[50000,52000,90000,34000,42000,72000,49000,55000,67000,65000,67000]
                           ,"region":["East","North","East","South","West","West","South","West","West","East",np.nan]
                           }
                          ]
0, fungsi ini menghasilkan objek baru, dan membiarkan objek aslinya tidak berubah

Ini adalah cara kerja sebagian besar metode Panda

Secara default, output dikirim ke konsol. Kita dapat melihat hasilnya di konsol, tetapi untuk menyimpannya, kita perlu menyimpannya dengan sebuah nama

Misalnya, Anda dapat menyimpan hasilnya seperti ini

import pandas as pd
import numpy as np
_9

Anda dapat memberi nama output baru apa pun yang Anda inginkan. Anda bahkan bisa menamainya dengan nama aslinya

0      East
1     North
2      East
3     South
4      West
5      West
6     South
7      West
8      West
9      East
10      NaN
Name: region, dtype: object
2

Tetapi berhati-hatilah. Jika Anda menetapkan kembali keluaran

import pandas as pd
import numpy as np
_10 ke nama kumpulan data, itu akan menimpa kumpulan data asli Anda. Pastikan Anda memeriksa kode Anda agar berfungsi dengan baik sebelum Anda melakukan ini

Tinggalkan pertanyaan Anda yang lain di komentar di bawah

Apakah Anda memiliki pertanyaan lain tentang metode get_dummies Pandas?

Apakah ada hal lain yang perlu Anda ketahui yang belum saya bahas di sini?

Jika demikian, tinggalkan pertanyaan Anda di bagian komentar di bawah

Temukan cara menjadi 'fasih' di Pandas

Tutorial ini menunjukkan cara menggunakan metode Pandas get_dummies, tetapi jika Anda ingin menguasai perselisihan data dengan Pandas, masih banyak yang harus dipelajari

Jadi jika Anda ingin menguasai perselisihan data dengan Python, dan menjadi 'fasih' di Pandas, maka Anda harus bergabung dengan kursus kami, Pandas Mastery

Pandas Mastery adalah kursus online kami yang akan mengajari Anda alat manipulasi data penting ini, menunjukkan cara menghafal sintaksis, dan menunjukkan cara menggabungkan semuanya

Bagaimana cara mengubah variabel kategori Anda menjadi variabel dummy?

Anda dapat melakukan tugas ini menggunakan modul panda . Panda memiliki fungsi bernama get_dummies. Ini akan mengubah nilai string kategorikal Anda menjadi variabel dummy.

Bagaimana Anda mengonversi variabel kategori dengan Python?

Bagaimana cara mengonversi variabel kategori menjadi numerik dengan Python? .
Membuat kamus dan mengubahnya menjadi kerangka data
Menggunakan fungsi "get_dummies" untuk penyandian
Menyatukan kumpulan data akhir yang disandikan ke dalam kerangka data akhir
Menjatuhkan kolom variabel kategorikal

Mengapa kita mengubah variabel kategori menjadi variabel dummy?

Hal ini karena variabel independen nominal dan ordinal, lebih luas dikenal sebagai variabel independen kategori, tidak dapat langsung dimasukkan ke dalam analisis regresi berganda . Sebaliknya, mereka perlu diubah menjadi variabel dummy.

Bagaimana cara mengonversi panda variabel dummy?

Variabel dummy dalam panda adalah variabel indikator yang hanya mengambil nilai, 0 , atau, 1 , untuk menunjukkan apakah variabel kategori terpisah dapat mengambil nilai tertentu atau tidak. Untuk membuat variabel tiruan dalam DataFrame yang diberikan di panda, kami menggunakan fungsi get_dummies[] .

Bài mới nhất

Chủ Đề