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-

  1. Co to są pandy
  2. NLP w Pythonie
  3. Klasa abstrakcyjna w Pythonie
  4. Silnia w Pythonie
  5. Program czynnikowy w JavaScript