0Pricing
Pandas & NumPy Academy · Lekcja

Tworzenie DataFrame

Tworzyć obiekty DataFrame ze słowników list, list słowników i tablic NumPy, a następnie sprawdzać shape, columns i dtypes

Tworzenie DataFrame to bezpłatna lekcja Pandas & NumPy Academy na CoddyKit. To lekcja 1 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.

Czym jest DataFrame?

DataFrame to dwuwymiarowa, skalowalna i opisana etykietami struktura danych — w praktyce tabela z wierszami i kolumnami, podobna do arkusza kalkulacyjnego lub tabeli SQL. Każda kolumna jest serią Pandas współdzielącą ten sam indeks wierszy. DataFrame może zawierać kolumny o różnych dtype, dzięki czemu doskonale nadaje się do rzeczywistych zbiorów danych łączących liczby, tekst i daty.

import pandas as pd

df = pd.DataFrame({'name': ['Alice', 'Bob', 'Carol'],
                   'age': [30, 25, 35],
                   'score': [88.5, 72.0, 95.3]})
print(df)

Tworzenie ze słownika list

Najczęściej DataFrame tworzy się ze słownika list: klucze stają się nazwami kolumn, a listy — wartościami kolumn. Wszystkie listy muszą mieć taką samą długość. Indeks wierszy domyślnie przyjmuje wartości 0, 1, 2, ... chyba że określą go Państwo za pomocą index=. Ten schemat odpowiada sposobowi, w jaki dane CSV są często reprezentowane w Pythonie.

import pandas as pd

df = pd.DataFrame({
    'city': ['Berlin', 'Paris', 'Rome'],
    'pop': [3.6, 2.2, 2.8],
    'country': ['DE', 'FR', 'IT']
})
print(df.shape)    # (3, 3)
print(df.dtypes)

Tworzenie z listy słowników

Można również przekazać listę słowników, w której każdy słownik reprezentuje jeden wiersz. Brakujące klucze w dowolnym słowniku powodują wstawienie wartości NaN w tej kolumnie. Ten format jest często używany podczas korzystania z interfejsów API JSON zwracających listę obiektów rekordów. Pandas automatycznie uzgadnia wszystkie klucze w słownikach, aby utworzyć zestaw kolumn.

import pandas as pd

rows = [
    {'name': 'Alice', 'age': 30, 'dept': 'Eng'},
    {'name': 'Bob',   'age': 25},              # 'dept' missing -> NaN
    {'name': 'Carol', 'age': 35, 'dept': 'HR'}
]
df = pd.DataFrame(rows)
print(df)

Tworzenie z tablicy NumPy

Przekazanie dwuwymiarowej tablicy NumPy tworzy DataFrame z całkowitymi nazwami kolumn (0, 1, 2, ...) oraz domyślnym RangeIndex. Należy użyć columns= i index=, aby dodać znaczące etykiety. Jest to połączenie między obliczeniami numerycznymi NumPy a analizą danych z etykietami w Pandas.

import pandas as pd
import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
df = pd.DataFrame(arr,
                  columns=['x', 'y', 'z'],
                  index=['r1', 'r2', 'r3'])
print(df)

Ustawianie niestandardowego indeksu podczas tworzenia

Parametr index= ustawia etykiety wierszy podczas tworzenia obiektu. Często używa się ciągów reprezentujących daty, identyfikatorów lub nazw kategorii, które ułatwiają wyszukiwanie wierszy. Dobrze dobrany indeks sprawia, że dostęp za pomocą .loc jest intuicyjny, a gdy indeks jest typu DatetimeIndex, umożliwia zaawansowane operacje na szeregach czasowych.

import pandas as pd

df = pd.DataFrame(
    {'revenue': [100, 200, 150], 'costs': [80, 160, 90]},
    index=['Jan', 'Feb', 'Mar']
)
print(df)
print(df.loc['Feb'])  # select row 'Feb'

Sprawdzanie kolumn, dtype i indeksu

Trzy atrybuty od razu pokazują strukturę DataFrame: df.columns zwraca Index z nazwami kolumn, df.dtypes zwraca Series przypisującą każdej kolumnie jej dtype, a df.index opisuje etykiety wierszy. Są to pierwsze kontrole, które należy wykonać dla każdego nowego DataFrame, aby zrozumieć dostępne dane przed ich przekształceniem.

import pandas as pd

df = pd.DataFrame({'a': [1, 2], 'b': [3.0, 4.0], 'c': ['x', 'y']})
print(df.columns)  # Index(['a', 'b', 'c'], dtype='object')
print(df.dtypes)
# a      int64
# b    float64
# c     object
print(df.index)    # RangeIndex(start=0, stop=2, step=1)

Określanie kolejności kolumn

Podczas tworzenia ze słownika kolejność kolumn odpowiada kolejności wstawiania kluczy do słownika (Python 3.7+). Jeśli potrzebują Państwo określonej kolejności, należy przekazać parametr columns= z listą nazw kolumn. Każda nazwa, której nie ma w danych, utworzy kolumnę NaN; każda nazwa obecna w danych, ale nieobecna na liście, zostanie pominięta. Pozwala to wybrać i uporządkować kolumny już podczas tworzenia obiektu.

import pandas as pd

data = {'c': [3, 6], 'a': [1, 4], 'b': [2, 5]}
df = pd.DataFrame(data, columns=['a', 'b', 'c'])
print(df.columns.tolist())  # ['a', 'b', 'c']

Tworzenie ze słownika Series

Przekazanie słownika serii Pandas uzgadnia dane względem sumy wszystkich indeksów. Jeśli w jednej serii brakuje etykiety obecnej w innej, odpowiadająca jej komórka wyniku otrzymuje wartość NaN. Jest to metoda tworzenia najlepiej uwzględniająca indeks i używa się jej podczas łączenia niezależnie obliczonych kolumn, które mogą mieć różną liczbę wierszy lub różne etykiety.

import pandas as pd

s1 = pd.Series([1, 2, 3], index=['a', 'b', 'c'])
s2 = pd.Series([10, 20], index=['b', 'c'])
df = pd.DataFrame({'col1': s1, 'col2': s2})
print(df)
#    col1  col2
# a   1.0   NaN
# b   2.0  10.0
# c   3.0  20.0

shape, len i size

df.shape zwraca krotkę (nrows, ncols). len(df) zwraca liczbę wierszy. df.size zwraca całkowitą liczbę komórek (wiersze × kolumny). Są to najszybsze kontrole poprawności po wczytaniu danych, pozwalające potwierdzić oczekiwaną liczbę rekordów i upewnić się, że żadna kolumna nie została niepostrzeżenie pominięta.

import pandas as pd

df = pd.DataFrame({'a': range(5), 'b': range(5), 'c': range(5)})
print(df.shape)  # (5, 3)
print(len(df))   # 5
print(df.size)   # 15  (5 rows x 3 cols)

Tworzenie pustego DataFrame

Można utworzyć pusty DataFrame z określonymi nazwami kolumn i dtype, aby używać go jako szablonu lub akumulatora. Wiersze należy dodawać za pomocą pd.concat([df, new_row])m. Określenie dtype podczas tworzenia pozwala uniknąć kosztownego wnioskowania o typach podczas późniejszego dodawania wierszy. Pusty DataFrame jest również przydatny jako obiekt początkowy w iteracyjnych pętlach zbierania danych.

import pandas as pd

df = pd.DataFrame(columns=['name', 'score'])
new_row = pd.DataFrame([{'name': 'Alice', 'score': 90}])
df = pd.concat([df, new_row], ignore_index=True)
print(df)

Kopiowanie DataFrame

Przypisanie DataFrame do nowej zmiennej tworzy referencję, a nie kopię — modyfikacja jednego obiektu modyfikuje również drugi. Należy użyć df.copy(), aby utworzyć niezależną kopię. Jest to ważne przed wykonaniem przekształceń, których nie chcą Państwo zastosować do oryginału, lub gdy chcą Państwo zachować kopię zapasową danych przed czyszczeniem podczas tworzenia oczyszczonej wersji.

import pandas as pd

original = pd.DataFrame({'a': [1, 2, 3]})
ref = original          # same object!
copy = original.copy()  # independent copy

ref['a'] = 99
print(original['a'].tolist())  # [99 99 99] -- ref modified original
print(copy['a'].tolist())      # [1, 2, 3]  -- copy unchanged

Szybkie sprawdzenie

Proszę sprawdzić swoją znajomość tworzenia DataFrame z tej lekcji.

Podsumowanie lekcji

W tej lekcji poznali Państwo: DataFrame można tworzyć ze słowników list, list słowników lub tablic NumPy, atrybuty columns, dtypes i index opisują strukturę tabeli, a df.copy() jest wymagane do uzyskania niezależnej kopii zamiast referencji. Następnie wybierzemy konkretne kolumny i wiersze za pomocą notacji nawiasowej, .loc i .iloc.

Często zadawane pytania

Czy lekcja „Tworzenie DataFrame” jest bezpłatna?

Tak — pełny tekst „Tworzenie 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 „Tworzenie DataFrame”?

Tworzyć obiekty DataFrame ze słowników list, list słowników i tablic NumPy, a następnie sprawdzać shape, columns i dtypes Ć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 1 z 4.

Ile czasu zajmuje lekcja „Tworzenie 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

  1. Tworzenie DataFrame
  2. Wybieranie kolumn i wierszy
  3. Dodawanie i usuwanie kolumn
  4. Podstawowa inspekcja DataFrame
← Powrót do Pandas & NumPy Academy