Wprowadzenie do Pandas.Dropna ()
Biblioteka open source Pythona Panda jest niewątpliwie najczęściej używaną biblioteką do analizy danych i analiz. Jest to również preferowany pakiet do operacji przetwarzania danych ad hoc. Jest to zasługą niezwykle elastycznej reprezentacji danych za pomocą DataFrames i arsenału funkcji narażonych na manipulowanie danymi obecnymi w tych ramkach danych. Wszelkie rzeczywiste problemy z danymi spowodują problem z brakującymi danymi i konieczne jest, aby takie punkty danych były traktowane we właściwy sposób. Obsługiwanie brakujących danych w dowolny sposób jest obsługiwane przez tę funkcję, Pandas.Dropna () .
Czym dokładnie są Pandas.Dropna ()?
Na stronie Pydata można znaleźć oficjalną definicję funkcji.
Pokazany nagłówek funkcji jest następujący (wraz z domyślnymi wartościami parametrów):
DataFrame.dropna(self, axis=0, how='any', thresh=None, subset=None, inplace=False)
Parametry (z wyłączeniem self (sam obiekt ramki danych)) pokazane w definicji funkcji są następujące:
- Oś: Odnosi się do orientacji (wiersza lub kolumny), w której dane są upuszczane. Możliwe wartości to 0 lub 1 (również odpowiednio „indeks” lub „kolumny”). 0 / „indeks” oznacza upuszczanie wierszy, a 1 / „kolumny” reprezentuje upuszczanie kolumn.
- how: określa scenariusz, w którym kolumna / wiersz zawierający wartość null musi zostać usunięty. Wartościami są „dowolne” lub „wszystkie”. „wszystkie” upuszczają wiersz / kolumnę tylko wtedy, gdy wszystkie wartości w wierszu / kolumnie są puste. „any” upuszcza wiersz / kolumnę, gdy co najmniej jedna wartość w wierszu / kolumnie jest pusta.
- thresh: Określa minimalną liczbę wartości innych niż NA w wierszu / kolumnie, aby można ją było uwzględnić w wyniku końcowym. Dowolny wiersz / kolumna z liczbą wartości innych niż NA <wartość progu jest usuwany niezależnie od przekazywanych innych parametrów. Gdy thresh = none, ten filtr jest ignorowany.
- podzbiór: oś określa, czy wiersze / kolumny muszą zostać usunięte. podzbiór pobiera odpowiednio listę kolumn / wierszy (przeciwnych do osi), które mają być wyszukiwane pod kątem wartości null / NA zamiast odpowiednio całej listy kolumn / wierszy.
- inplace: Zgodnie z dobrą praktyką oryginalna ramka danych (lub reprezentacja danych) nie jest modyfikowana, ale zwracana jest osobna kopia ze zmianami (tj. upuszczane wiersze / kolumny). Atrybut inplace daje elastyczność modyfikowania samej oryginalnej struktury danych.
Teraz, gdy mamy już ogólne pojęcie o parametrach ujawnionych przez dropna (), zobaczmy kilka możliwych scenariuszy brakujących danych i sposób ich rozwiązania.
Przykładowe przypadki użycia Pandas.Dropna ()
Poniżej znajdują się przykłady pandas.dropna ():
Importuj pandy: Aby użyć Dropna (), musi istnieć DataFrame. Aby utworzyć ramkę danych, należy zaimportować bibliotekę pandy (tutaj nie jest zaskoczeniem). Zaimportujemy go z aliasem pd, aby wygodnie odwoływać się do obiektów w module. Aby zdefiniować wartości zerowe, będziemy trzymać się numpy.nan. W ten sposób zaimportujemy bibliotekę numpy z aliasem np:
Kod:
In (1): import pandas as pd
In (2): import numpy as np
1. Utwórz obiekt DataFrame do manipulacji
Po zaimportowaniu pand wszystkie metody, funkcje i konstruktory są dostępne w obszarze roboczym. Stwórzmy więc DataFrame, która pomoże nam zademonstrować użycie dropna ().
Kod:
In (3): df = pd.DataFrame(
('Company':('Google', 'Amazon', 'Infosys', 'Directi'),
'Age':('21', '23', '38', '22'),
'NetWorth ($ bn)':(300, np.nan, np.nan, 1.3),
'Founder':(np.nan, np.nan, np.nan, np.nan),
'Headquarter-Country':('United States', np.nan, 'India', 'India') ))
In (4): print(df)
Company Age NetWorth ($ bn) Founder Headquarter-Country
0 Google 21 300.0 NaN United States
1 Amazon 23 NaN NaN NaN
2 Infosys 38 NaN NaN India
3 Directi 22 1.3 NaN India
Wydrukowana ramka DataFrame zostanie zmanipulowana podczas poniższej demonstracji.
2. Zrzucanie wierszy a kolumny
Parametr osi służy do upuszczania wierszy lub kolumn, jak pokazano poniżej:
Kod:
In (5): df.dropna(axis=1)
Wynik:
Out(5):
Company Age
0 Google 21
1 Amazon 23
2 Infosys 38
3 Directi 22
Każda kolumna zawierająca co najmniej 1 NaN jako wartość komórki jest upuszczana. Zobaczmy, jak będą działać wiersze (oś = 0).
Uwaga : Jest to domyślne zachowanie, gdy oś nie jest wyraźnie określona.
Kod:
In (6): df.dropna(axis=0)
Wynik:
Out(6):
Empty DataFrame
Columns: (Company, Age, NetWorth ($ bn), Founder, Headquarter-Country) Index: ()
Hmm, więc nie ma już danych w zwróconej ramce DataFrame! To oczywiście nie jest zamierzone zachowanie. Zobaczmy, jak to naprawić.
3. Korzystanie z atrybutu podzestawu
Poprzednie operacje były odrzucane na podstawie wszystkich kolumn, gdy oś = 0. Ponieważ istnieje kolumna Founder, która ma tylko wartości null, wszystkie wiersze są usuwane. Określmy kolumnę, która będzie używana do filtrowania:
Kod:
In (7): df.dropna(axis=0, subset=('NetWorth ($ bn)'))
Wynik:
Out(7):
Company Age NetWorth ($ bn) Founder Headquarter-Country
0 Google 21 300.0 NaN United States
3 Directi 22 1.3 NaN India
Teraz, jak widzimy, usuwane są tylko rekordy z Nanvalue w kolumnie Networth. Zwróconą ramkę danych można ponownie zmodyfikować, stosując ponownie dropna (), aby odfiltrować kolumny, przekazując oś = 1.
4. Korzystanie z parametru Jak
Domyślnie dropna () upuszcza cały wiersz / kolumnę, nawet jeśli brakuje tylko 1 wartości. Odsłonięcie szybkiej drugiej strony ma miejsce tylko wtedy, gdy wszystkie wartości w wierszu / kolumnie są zerowe. Osiąga się to poprzez ustawienie how = „all” zamiast how = „any” (zachowanie domyślne).
Kod:
In (8): df.dropna(axis=1, how='all')
Wynik:
Out(8):
Company Age NetWorth ($ bn) Headquarter-Country
0 Google 21 300.0 United States
1 Amazon 23 NaN NaN
2 Infosys 38 NaN India
3 Directi 22 1.3 India
Teraz wynikową ramkę danych można wykorzystać do usuwania wierszy / kolumn z bardziej złożoną logiką, jeśli jest to wymagane.
5. Przejęcie kontroli przez Thresh
Parametr thresh jest prawdopodobnie najpotężniejszym narzędziem, gdy jest odpowiednio połączony z resztą.
Kod:
In (17): df.dropna(axis=1, thresh=2)
Wynik:
Out(17):
Company Age NetWorth ($ bn) Headquarter-Country
0 Google 21 300.0 United States
1 Amazon 23 NaN NaN
2 Infosys 38 NaN India
3 Directi 22 1.3 India
Ustawiając oś = 1 i thresh = 2, zachowywane są tylko te kolumny, które mają co najmniej 2 wartości inne niż NaN.
Wniosek
Przykłady przedstawione powyżej mają charakter uproszczony, ale są wystarczająco silne, aby poradzić sobie z większością problemów, na które możesz natknąć się w rzeczywistych sytuacjach. Niemniej jednak należy ćwiczyć łączenie różnych parametrów, aby uzyskać krystalicznie czyste zrozumienie ich użycia i prędkości kompilacji w ich zastosowaniu.
Polecane artykuły
To jest przewodnik po Pandas.Dropna (). Tutaj omawiamy, czym jest Pandas.Dropna (), parametry i przykłady. Możesz również przejrzeć nasze inne powiązane artykuły, aby dowiedzieć się więcej-
- Co to są pandy
- NLP w Pythonie
- Klasa abstrakcyjna w Pythonie
- Silnia w Pythonie
- Program czynnikowy w JavaScript