Pandy konwertują wartości kategoryczne na wartości int

Pandy Konwertuja Wartosci Kategoryczne Na Wartosci Int



Zestawy danych do wykonywania uczenia maszynowego zawierają zarówno zmienne liczbowe, jak i kategoryczne. Zmienne kategorialne to dane typu łańcuchowego, które ludzie łatwo pojmują. Z drugiej strony maszyny nie mogą bezpośrednio zrozumieć danych kategorycznych. W konsekwencji treści kategoryczne muszą zostać przekształcone w wartości liczbowe, które maszyny mogą zinterpretować.

Metody konwertowania kategorii na Int

Techniki dostępne w „pandach” do konwersji wartości kategorycznych na int DataFrame są dostępne tutaj:

    • Metoda DataFrame.replace()
    • Metoda DataFrame.apply(factorize())

Wykorzystamy te metody w tym artykule i szczegółowo wyjaśnimy, jak wykorzystać obie metody w „pandach”.







Przykład nr 1: Wykorzystanie metody Pandas Replace()

Wartości kategoryczne w DataFrame można przekonwertować na int za pomocą metody pandy „DataFrame.replace()”. Nauczymy się tutaj korzystać z tej metody.



Wykorzystaliśmy narzędzie „Spyder”, aby optymalnie wykonać tę technikę w Pythonie. Aby rozpocząć pisanie skryptu, otwórz nowy plik Pythona w narzędziu „Spyder”. Najważniejszym wymogiem do napisania skryptu jest zaimportowanie odpowiednich bibliotek. Ponieważ musimy zaimplementować metodę „pand”, będziemy mieli „importuj pandy jako pd”, aby uzyskać dostęp do funkcji „pand”. Następnie zaczynamy nasz podstawowy kod Pythona. Stworzyliśmy DataFrame za pomocą metody „pd.DataFrame()”. DataFrame jest inicjowana przez trzy kolumny „Nazwa”, „Stopień” i „Dochód”. Wszystkie kolumny DataFrame przechowują wartości o tej samej długości.



Pierwsza kolumna, „Imię”, ma osiem wartości, którymi są „bush”, „albert”, „harry”, „peter”, „emma”, „newton”, „smith” i „elsa”. Druga kolumna, „Stopień”, również przechowuje osiem wartości kategorycznych, którymi są „BS”, „MS”, „MS”, „BS”, „BS”, „BS”, „MS” i „MS”. Ostatnia kolumna „Dochód” ma osiem wartości całkowitych „60000”, „80000”, „75000”, „45000”, „56000”, „65000”, „55000” i „70000”. Stworzyliśmy obiekt DataFrame „staff” do przechowywania danych wyjściowych wywołania funkcji „pd.DataFrame()”. Aby wyświetlić naszą początkową ramkę DataFrame, użyliśmy metody „print()” z nazwą DataFrame „staff” jako jej parametrem w ostatniej linii skryptu.






Aby wyświetlić dane wyjściowe na terminalu, użyj przycisku „Uruchom plik” w narzędziu „Spyder” lub naciśnij klawisze „Shift + Enter”. Dane wyjściowe wyświetlane na terminalu pokazują ramkę DataFrame z trzema kolumnami, które zostały pomyślnie wygenerowane.


Teraz nasza DataFrame jest skonstruowana, musimy zastosować do niej wymaganą technikę. Metoda pandy „DataFrame.replace()” zostanie wykorzystana do konwersji wartości kategorycznych określonej kolumny na wartości całkowite, aby maszyny mogły je odczytywać.



Nazwę DataFrame podaliśmy z konkretną nazwą kolumny, której wartości musimy zastąpić, czyli „staff[‘degree’]”. Chcemy, aby wartości z kolumny „Stopień”, która zawiera wartości kategoryczne, zostały zastąpione wartościami całkowitymi. Następnie wywoływana jest metoda „.replace()”. Przekazaliśmy to na dwa zestawy; pierwsza zawiera dwie wartości kategoryczne „[„BS”, „MS”]”, które wyodrębniliśmy z kolumny „Stopień”. Jak widać, kolumna „Stopień” używa tych dwóch wartości wielokrotnie. Gdybyśmy mieli trzecią wartość, musieliśmy o tym również wspomnieć. Drugi zestaw ma dwie wartości int „[0, 1]”, które odpowiednio zastąpią wartości pierwszego zestawu. Drugi parametr, „inplace”, jest ustawiony jako „True”, umożliwiając zamianę wartości. Jeśli jest ustawiony na „Fałsz”, wyłączy zamianę. Na koniec wykorzystaliśmy metodę „print()”, aby wyświetlić zaktualizowaną ramkę DataFrame „personel”.


Wynikowa DataFrame ma wartości całkowite w kolumnie „Stopień”. Wartość „BS” zastępuje się „0s”, a „MS” zastępuje się „1s”.


Możesz nawet zweryfikować typ danych dla każdej kolumny, używając właściwości „dataframe.dtype”. Dzięki temu uzyskamy typy danych wszystkich kolumn w określonej ramce DataFrame.


Tutaj mamy nasze typy danych DataFrame. Widzimy, że typ danych kolumny „Stopień” został zmieniony na „int64”.

Przykład nr 2: Wykorzystanie metody Pandy apply()

Inną udostępnioną nam metodą pand jest funkcja „DataFrame.apply()” służąca do konwertowania wartości kategorycznych na liczby całkowite. W poprzednim przykładzie nauczyliśmy się konwertować jedną kolumnę kategorii na liczbę całkowitą. Zobaczymy teraz, jak przekonwertować wszystkie kolumny kategorii w DataFrame na int.

Zaczynając od praktycznej implementacji musimy zaimportować niezbędną bibliotekę dla tej metody, czyli pandy. Użyliśmy skryptu „import pandas as pd”, aby zaimportować pandy do naszego pliku Pythona w narzędziu „Spyder”, co pozwoli nam uzyskać dostęp do modułów pand za pomocą „pd”. Użyliśmy funkcji „pd.DataFrame()” do skonstruowania DataFrame.

Ta ramka DataFrame ma cztery kolumny „grupa”, „pozycja”, „wyniki” i „pomoc”. Każda kolumna przechowuje 9 wartości. Wartości kolumny „grupa” to „X”, „X”, „Y”, „X”, „Y”, „Y”, „Y”, „X” i „Y”. Kolumna „pozycja” ma 9 wartości, które są „A”, „C”, „D”, „A”, „C”, „B”, „B”, „D” i „B”. Kolumna „wyniki” ma wartości całkowite jako „4”, „8”, „7”, „10”, „9”, „5”, „7”, „3” i „23”. Ostatnia kolumna „pomocy” ma wartości „10”, „2”, „3”, „9”, „3”, „7”, „4”, „2” i „9”.

Stworzyliśmy obiekt DataFrame „prog” i przypisaliśmy mu wyjście wywołania metody „pd.DataFrame()”. Tak więc wynikowa ramka DataFrame wygenerowana z „pd.DataFrame()” zostanie zapisana w „prog”. Teraz możemy uzyskać dostęp do DataFrame za pomocą tego obiektu. Aby wyświetlić tę DataFrame, zastosowaliśmy metodę „print()” z obiektem DataFrame „prog” jako jego parametrem.


Po wykonaniu poprzedniego programu w Pythonie na terminalu zostanie wyświetlona ramka DataFrame z czterema kolumnami.


Aby przekonwertować wiele kolumn kategorialnych na liczby całkowite, zastosowaliśmy tę technikę. Najpierw musimy wybrać wszystkie kolumny, które zawierają obiektowy typ danych, używając metody pandy „DataFrame.select_dtypes().columns”. Kiedy użyjemy go w naszym skrypcie zgodnie z wymaganiami, będzie to „prog.select_dtypes(['object']).columns”. Zaznaczy wszystkie kolumny mające typ danych „object” w „prog” DataFrame. Stworzyliśmy zmienną „concate_col” do przechowywania danych wyjściowych tej metody. Teraz możemy uzyskać dostęp do kolumn typu danych „object” po prostu za pomocą tej zmiennej „concat_col”.

Teraz, aby przekonwertować te kolumny na liczby całkowite, użyliśmy pandy „DataFrame.apply()” z metodą „pd.factorize()”. Użyliśmy zmiennej „concat_col” z nazwą DataFrame, a następnie wywoływana jest metoda „.apply()”. W nawiasie metody „.apply” nazwaliśmy metodę „pd.factorize()”, gdzie „x” może być dowolną wartością z DataFrame „prog” z typem danych „object”. Tak więc cały ten wiersz kodu jest zapisany jako „prog['concat_col'] = prog['concat_col'].apply(lambda x : pd.factorize(x)[0])”. Metoda faktoryzacji przyjmie wartość z typ danych „object” i przekonwertuj go na „int”. Ostateczne wyjście można wyświetlić, wywołując funkcję „print()”, przekazując zmienną „prog” jako jej parametr.


W zaktualizowanym DataFrame możemy zaobserwować, że wartości kolumn „grupa” i „pozycja” były początkowo kategoryczne, czyli obiekt. Nadal w zaktualizowanym DataFrame danych wyjściowych obie kolumny mają wartości całkowite. W kolumnie „grupa” „X” zastępuje się „0”, a „Y” – „1”. natomiast kolumnę „pozycja” „A” zastępuje się „0”, „C” na „1”, „D” na „2” i „B” na „3”.


Teraz zweryfikujmy zaktualizowane typy danych.


Wszystkie poniższe kolumny mają typ danych „int64”.

Wniosek

Nasz przewodnik koncentruje się na konwersji wartości kategorycznych na wartości liczbowe, aby mogły być zrozumiałe dla maszyn, ponieważ typ danych obiektu nie może być przez nie przetwarzany. Przedstawiliśmy Ci dwa podejścia oferowane przez bibliotekę „pandy”, aby uzyskać wymagany typ danych. Ponadto, dzięki praktycznej implementacji przykładowych kodów uruchomionych w narzędziu „Spyder”, podzieliliśmy się wynikami każdego przykładu. Na koniec opracowaliśmy każdy krok, aby osiągnąć pożądany efekt.