Masalah:
Memandangkan bingkai data yang mengandungi nilai kategori, tugasnya adalah untuk menukar kategori ini ke dalam indeks berangka. Katakan kita mempunyai negara sebagai kategori seperti ini:
cc | temp US | 37.0 CA | 12.0 US | 35.0 AU | 20.0
Daripada pengekodan satu-panas menggunakan get_dummies, matlamatnya adalah untuk memberikan indeks kepada setiap negara, seperti cc_index = [1,2,1,3] .
Penyelesaian:
Untuk menukar kategori Panda kepada indeks berangka, ikut langkah berikut:
Tukar jenis data bagi lajur kategori:
df.cc = pd.Categorical(df.cc)
Buat lajur baharu untuk menyimpan kod kategori:
df['code'] = df.cc.codes
Ini akan menghasilkan bingkai data dengan lajur kod tambahan yang mengandungi indeks berangka:
cc temp code 0 US 37.0 2 1 CA 12.0 1 2 US 35.0 2 3 AU 20.0 0
Sebagai alternatif, anda boleh menggunakan kaedah astype untuk menukar lajur kategori terus kepada lajur kategori dengan kod:
df.cc.astype('category').codes
Satu lagi pilihan ialah menggunakan lajur kategori sebagai indeks rangka data baharu:
df2 = pd.DataFrame(df.temp) df2.index = pd.CategoricalIndex(df.cc)
Atas ialah kandungan terperinci Bagaimana untuk Menukar Kategori Panda kepada Indeks Berangka?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!