Podstawowa inspekcja DataFrame
Używać metod head(), tail(), info(), describe() i atrybutu shape, aby szybko poznać zawartość i strukturę dowolnego obiektu DataFrame
Podstawowa inspekcja DataFrame to bezpłatna lekcja Pandas & NumPy Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Pandas & NumPy Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Pandas & NumPy Academy zawiera 4 lekcji w sumie.
Pierwsze pięć kroków z dowolnym obiektem DataFrame
Za każdym razem, gdy wczytujesz nowy zbiór danych, systematyczna sekwencja kontroli pozwala zaoszczędzić wiele godzin debugowania. Zestaw narzędzi Pandas obejmuje: head() do wyświetlania pierwszych wierszy, tail() do wyświetlania ostatnich wierszy, info() do sprawdzania typów kolumn i wartości null, describe() do uzyskiwania statystyk oraz shape do sprawdzania wymiarów. Wykonanie tych pięciu kontroli zajmuje mniej niż minutę i od razu ujawnia większość problemów z jakością danych.
import pandas as pd
# Assume df is loaded from a CSV
print(df.shape) # (rows, cols)
df.head() # first 5 rows
df.info() # dtypes + non-null counts
df.describe() # statisticshead() i tail()
df.head(n) zwraca pierwsze n wierszy (domyślnie 5) jako obiekt DataFrame. df.tail(n) zwraca ostatnie n wierszy. Razem pomagają sprawdzić, czy dane zostały poprawnie sparsowane — można zweryfikować, czy nazwy kolumn znajdują się w wierszu nagłówka, kolumny liczbowe zawierają liczby oraz czy ciągi dat nie zostały błędnie zinterpretowane. Operacje te nie modyfikują danych i zwracają nowe obiekty DataFrame.
import pandas as pd
df = pd.DataFrame({'a': range(20), 'b': range(20, 40)})
print(df.head(3))
# a b
# 0 0 20
# 1 1 21
# 2 2 22
print(df.tail(2))
# a b
# 18 18 38
# 19 19 39info(): typy i liczby wartości innych niż null
df.info() wyświetla zwięzłe podsumowanie: typ danych indeksu, liczbę wartości innych niż null w każdej kolumnie, typ danych każdej kolumny oraz całkowite zużycie pamięci. Kolumny zawierające mniej wartości innych niż null niż wynosi całkowita liczba wierszy mają brakujące dane. Typ danych object często oznacza kolumnę tekstową (lub kolumnę zawierającą wartości różnych typów), która może wymagać oczyszczenia przed analizą.
import pandas as pd
import numpy as np
df = pd.DataFrame({'name': ['A', 'B', None],
'score': [80.0, np.nan, 90.0],
'grade': ['A', 'C', 'A']})
df.info()
# Column Non-Null Count Dtype
# name 2 non-null object
# score 2 non-null float64
# grade 3 non-null objectdescribe(): podsumowanie statystyczne
df.describe() oblicza dla wszystkich kolumn liczbowych liczbę wartości, średnią, odchylenie standardowe, minimum, 25. percentyl, 50. percentyl (medianę), 75. percentyl i maksimum. Przekaż include='all', aby uwzględnić również kolumny typu object (tekstowe). Przekaż include='object', aby podsumować wyłącznie kolumny kategorialne. Wynik jest sam w sobie obiektem DataFrame, więc można go zapisać lub sformatować na potrzeby raportu.
import pandas as pd
df = pd.DataFrame({'age': [25, 30, 35, 40], 'score': [88, 72, 91, 65]})
print(df.describe().round(1))
# age score
# count 4.0 4.0
# mean 32.5 79.0
# std 6.5 12.0shape, ndim i size
df.shape to krotka (nrows, ncols). df.ndim zawsze zwraca wartość 2 dla obiektów DataFrame. df.size to całkowita liczba komórek. Użyj len(df), aby uzyskać liczbę wierszy (taką samą jak df.shape[0]). Są to najprostsze kontrole poprawności — potwierdź oczekiwaną liczbę wierszy po wczytaniu danych i po każdym etapie filtrowania.
import pandas as pd
df = pd.DataFrame({'x': range(100), 'y': range(100), 'z': range(100)})
print(df.shape) # (100, 3)
print(len(df)) # 100
print(df.size) # 300
print(df.ndim) # 2dtypes i select_dtypes()
df.dtypes zwraca serię mapującą nazwę każdej kolumny na jej typ danych. df.select_dtypes(include='number') zwraca nowy obiekt DataFrame zawierający wyłącznie kolumny liczbowe — jest to przydatne do obliczania korelacji lub stosowania przekształceń liczbowych bez przypadkowego operowania na kolumnach tekstowych. Przekaż exclude='object', aby pominąć kolumny tekstowe.
import pandas as pd
df = pd.DataFrame({'a': [1,2], 'b': [1.0,2.0], 'c': ['x','y']})
print(df.dtypes)
# a int64
# b float64
# c object
numeric = df.select_dtypes(include='number')
print(numeric.columns.tolist()) # ['a', 'b']isnull() i liczby wartości null
df.isnull().sum() podaje liczbę brakujących wartości w każdej kolumnie — to najszybszy sposób na znalezienie kolumn wymagających oczyszczenia. Podziel wynik przez len(df), aby uzyskać udział brakujących wartości. Kolumna, w której brakuje ponad 50% wartości, często wymaga specjalnego potraktowania: należy ją usunąć lub zastosować imputację właściwą dla danej dziedziny.
import pandas as pd
import numpy as np
df = pd.DataFrame({'a': [1, np.nan, 3], 'b': [np.nan, np.nan, 6]})
print(df.isnull().sum())
# a 1
# b 2
print((df.isnull().sum() / len(df)).round(2))
# a 0.33
# b 0.67value_counts() dla kolumny obiektu DataFrame
Wywołanie df['col'].value_counts() wyświetla częstość każdej unikatowej wartości w kolumnie, posortowaną według liczby wystąpień. Dodaj normalize=True, aby uzyskać wartości procentowe. Użyj dropna=False, aby uwzględnić NaN jako kategorię. Jest to najszybszy sposób sprawdzenia niezrównoważenia kategorii lub nieoczekiwanych wartości w kolumnie kategorialnej.
import pandas as pd
df = pd.DataFrame({'status': ['active','inactive','active','active','banned']})
print(df['status'].value_counts())
# active 3
# inactive 1
# banned 1
print(df['status'].value_counts(normalize=True).round(2))Inspekcja columns i index
df.columns.tolist() zwraca zwykłą listę Python zawierającą nazwy kolumn — jest to przydatne podczas programowej modyfikacji lub rejestrowania informacji. df.index wyświetla etykiety wierszy i ich typ. Sprawdź df.index.is_unique, aby potwierdzić, że nie istnieją zduplikowane etykiety wierszy, co jest warunkiem wstępnym wielu operacji scalania i obliczeń szeregów czasowych.
import pandas as pd
df = pd.DataFrame({'a': [1,2,3]}, index=['x', 'y', 'z'])
print(df.columns.tolist()) # ['a']
print(df.index.tolist()) # ['x', 'y', 'z']
print(df.index.is_unique) # Truesample() do losowej inspekcji
df.sample(n) zwraca n losowo wybranych wierszy bez powtórzeń. df.sample(frac=0.1) zwraca 10% wierszy. Ustaw random_state=, aby zapewnić powtarzalność wyników. Losowanie jest lepsze niż head() do wykrywania problemów w środkowej części dużego zbioru danych, które mogą nie występować w kilku pierwszych wierszach.
import pandas as pd
df = pd.DataFrame({'x': range(1000), 'y': range(1000)})
print(df.sample(3, random_state=42))
print(df.sample(frac=0.005, random_state=0)) # 0.5% of rowsmemory_usage() do określania budżetu pamięci
df.memory_usage(deep=True) zwraca zużycie pamięci przez każdą kolumnę w bajtach. deep=True wymusza dokładny pomiar kolumn typu object, których ciągi znaków znajdują się poza buforem obiektu DataFrame. Zsumuj wartości, aby uzyskać całkowite zużycie pamięci. Użyj tej metody przed zmniejszeniem typów danych i po nim, aby potwierdzić ograniczenie zużycia pamięci.
import pandas as pd
df = pd.DataFrame({'a': range(10000), 'b': [str(i) for i in range(10000)]})
usage = df.memory_usage(deep=True)
print(usage)
print('Total bytes:', usage.sum())Szybkie sprawdzenie
Sprawdź swoją wiedzę na temat podstawowej inspekcji obiektu DataFrame z tego modułu.
Podsumowanie lekcji
W tej lekcji nauczyłeś się, że: head() i tail() umożliwiają wizualną inspekcję początku i końca obiektu DataFrame, info() w jednym wywołaniu pokazuje typy danych i liczby brakujących wartości, a describe() udostępnia podsumowania statystyczne dla kolumn liczbowych. Następnie wczytamy dane z najpopularniejszych formatów plików — CSV, Excel i JSON — do obiektów DataFrame.
Często zadawane pytania
Czy lekcja „Podstawowa inspekcja DataFrame” jest bezpłatna?
Tak — pełny tekst „Podstawowa inspekcja DataFrame” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Pandas & NumPy Academy, przejdź na CoddyKit PRO. Kurs Pandas & NumPy Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Podstawowa inspekcja DataFrame”?
Używać metod head(), tail(), info(), describe() i atrybutu shape, aby szybko poznać zawartość i strukturę dowolnego obiektu DataFrame Ćwiczysz Pandas & NumPy Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Pandas & NumPy Academy?
Nie wymagamy żadnego doświadczenia. Pandas & NumPy Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Podstawowa inspekcja DataFrame”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Pandas & NumPy Academy?
Tak. Każda lekcja Pandas & NumPy Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Tworzenie DataFrame
- Wybieranie kolumn i wierszy
- Dodawanie i usuwanie kolumn
- Podstawowa inspekcja DataFrame