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] } ]
_2sales_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] } ]
_3sales_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] } ]
_4sales_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] } ]
5sales_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] } ]
_6sales_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] } ]
_7sales_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] } ]
_8sales_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 NaN0 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 NaN1, 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 NaN2 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 NaN3. [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 NaN6. 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.region0. 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.region4
[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.region6
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 paketPertama, 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 contohSelanjutnya, 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.region9 [i. e. , nilai yang hilang]. Ini akan menjadi penting diBuat Seri
Kami juga akan membuat Seri Panda bernama
region = sales_data.region7
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.region7 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. ]
PenjelasanPerhatikan apa yang terjadi di sini
Keluaran pd. get_dummies adalah sekelompok 4 variabel baru
print[region]
_3print[region]
_4print[region]
_5print[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.region7 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: object2
import pandas as pd import numpy as np0
KELUAR
import pandas as pd import numpy as np1Penjelasan
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
_40 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
_50 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
_60 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.region7] sebagai awalan untuk nama variabel baru
Perhatikan juga bagaimana variabel baru dikodekan
- Di mana nilai adalah '
print[region]
3' di Seri asli, variabel0 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, variabel0 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, variabel0 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, variabel0 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 NaN7
import pandas as pd import numpy as np2
KELUAR
import pandas as pd import numpy as np3Penjelasan
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 01, 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 02, 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 03, 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: object4 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 05 untuk menggunakan awalan yang berbeda
import pandas as pd import numpy as np4
KELUAR
import pandas as pd import numpy as np5Penjelasan
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 06 [bukan hanya
region = sales_data.region7]
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: object2, nilai wilayah adalah
import pandas as pd import numpy as np00 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.region1
import pandas as pd import numpy as np6
KELUAR
import pandas as pd import numpy as np7Penjelasan
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 np02
Nilai ini hanya memiliki 1 dimana nilai variabel yang kita operasikan memiliki nilai yang hilang [
import pandas as pd import numpy as np00]. 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 np0
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: object2 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: object2
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 iniTinggalkan 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