Zestawy danych do wykonywania uczenia maszynowego obejmują zarówno zmienne numeryczne, jak i kategoryczne. Zmienne kategoryczne to dane typu ciągów, które ludzie łatwo rozumieją. Z drugiej strony maszyny nie mogą bezpośrednio zrozumieć kategorycznych danych wejściowych. W konsekwencji zawartość kategoryczna musi zostać przekształcona w wartości numeryczne, które maszyny mogą interpretować.
W tym samouczku omówimy trzy różne sposoby konwersji wartości kategorycznych na wartości liczbowe w PandaS DataFrame
Podejście 1: Używanie zastąpienia ()
W Pythonie zastąpienie () służy do zmiany lub konwersji podanych wartości na nowe wartości, które określliśmy. Aby zastąpić wiele wartości, musimy przekazać dwie listy jako parametry. Pierwsza lista będzie przechowywać rzeczywiste wartości, które należy wymienić, a druga lista będzie przechowywać wartości zastępujące wartości na pierwszej liście.
Składnia
DataFrame_Object ['kolumna'] = dataFrame_Object ['kolumna'].Zamień ([wartość1, wartość2,…], [wartość1, wartość2,…])Kolumna to nazwa kolumny, w której zastępujemy wartości.
Rozważ ramkę danych
Utwórzmy nazywaną ramkę danych Pandas zestawy które zawierają 4 kolumny z 10 wierszy.
# Zaimportuj ramkę danych z modułu pandaasWyjście
Kod priorytetowy wiek płciowyWidzimy dwie kolumny z typem kategorycznym (obiekt), i.mi., Priorytet i płeć.
Musimy więc przekonwertować je na wartości numeryczne/liczb całkowitych.
Przykład 1
Zastąpmy wartości w kolumnie płciowej metodą zastępowania ().
# Zaimportuj ramkę danych z modułu pandaasWyjście
Kod priorytetowy wiek płciowyWyjaśnienie
Zastępujemy „M” 1 i „F” 2 i ponownie przechowujemy wartości kolumny w kolumnie płciowej. Widzimy, że kolumna płci utrzymuje wartości w ciągu 1 lub 2.
Przykład 2
Zastąpmy wartości w kolumnie priorytetowej za pomocą metody zastępczej ().
# Zaimportuj ramkę danych z modułu pandaasWyjście
Kod priorytetowy wiek płciowyWyjaśnienie
W kolumnie priorytetowej są trzy kategorie. Są „niskie”, „wysokie” i „medium”. Zastępujemy „niski” na 0, „medium” 1 i „high” z 2 i ponownie przechowując wartości kolumny w kolumnie priorytetowej.
Podejście 2: Zastosowanie (factorize ())
Drugą metodą, jaką podano nam pandy, jest „DataFrame.Apply () „Funkcja przekształcania wszystkich wartości kategorycznych w liczby całkowite.
Aby przekonwertować wiele kategorycznych kolumn na liczby całkowite, przestrzegaliśmy tej techniki:
Metoda Factorize przyjmie wartość z typem danych „obiekt” i przekonwertuje ją na „int”.
Jeśli chcesz przekonwertować tylko wartości kategoryczne danej kolumny na liczby całkowite, wówczas zastosuj ().
Składnia dla pojedynczej kolumny
DataFrame_Object ['kolumna'] = pandy.Factorize (dataFrame_Object ['kolumna']) [0]Składnia dla wszystkich kolumn
DataFrame_Object [DataFrame_Object.Select_dtypes (['obiekt']).kolumny] = DataFrame_Object [DataFrame_Object.Select_dtypes (['obiekt']).kolumny].Zastosuj (Lambda X: Pandy.Factorize (x) [0])Notatka: Wymiana rozpocznie się od 0.
Przykład 1: Wymień wartości kategoryczne pojedynczej kolumny
Zastąpmy wartości w kolumnie płciowej metodą factorize ().
# Zaimportuj ramkę danych z modułu pandaasWyjście
Kod priorytetowy wiek płciowyWyjaśnienie
Zastępujemy „M” 0 i „F” 1 i ponownie przechowujemy wartości kolumny w kolumnie płciowej. Teraz widzimy, że kolumna płci utrzymuje wartości w granicach 0 lub 1.
Przykład 2: Wymień wszystkie wartości kategoryczne kolumny
Zastąpmy wartości we wszystkich kolumnach za pomocą metody Applant (factorize ()).
# Zaimportuj ramkę danych z modułu pandaasWyjście
Kod priorytetowy wiek płciowyWyjaśnienie
Widzimy w następujących:
Do tej pory widzieliśmy zastąpienie wartości kategorycznych na wartości całkowitej w pojedynczych lub wszystkich kolumnach o znanych wartości kategorycznych. Załóżmy, że istnieje ogromny zestaw danych z więcej niż jedną lakh rekordów. Jak zastąpić wartości kategoryczne?
Rozwiązaniem jest kodowanie etykiet.
Omówmy to podejście.
Podejście 3: Korzystanie z elegancoding
LabelenCoder () to metoda obecna wewnątrz modułu Sklearn, który przekonwertuje wartości kategoryczne określonej kolumny na liczbę całkowitą. Nie musimy określać wartości kategorycznych.
stosuje się metodę Fit_Transform () wraz z elegancoder (), która pasuje do wartości transformowanych.
W tej technice wymienione wartości zaczynają się od 0, a wymiana odbywa się w kolejności alfabetycznej wartości kategorycznych.
Składnia
DataFrame_Object ['kolumna'] = etykietencoder ().fit_transform (dataFrame_Object ['kolumna'])Kolumna to nazwa kolumny, w której zastępujemy wartości.
Przykład
Zastąpmy wartości w płci, priorytetowe kolumny przy użyciu następującego podejścia:
# Zaimportuj ramkę danych z modułu pandaasWyjście
Kod priorytetowy wiek płciowyWyjaśnienie
Wniosek
Nasz przewodnik obraca się wokół przekształcania wartości kategorycznych na wartości numeryczne, aby mogły być zrozumiałe przez maszyny, ponieważ nie można przez nich przetworzyć danych obiektowych. Wprowadziliśmy Cię do trzech podejść przedstawionych przez bibliotekę „Pandy”, aby uzyskać wymagany danych. Pamiętaj, że powinieneś użyć podejścia etykietninging, ponieważ nie wiesz, ile kategorii jest obecnych w kolumnie pandas DataFrame.