Samouczek ramy danych pandas

Samouczek ramy danych pandas

Pandy do analizy numerycznej

Pandy zostały opracowane z potrzeby skutecznego sposobu zarządzania danymi finansowymi w Python. Pandy to biblioteka, którą można zaimportować do Pythona, aby pomóc w manipulowaniu i przekształcaniu danych liczbowych. Wes McKinney rozpoczął projekt w 2008 roku. Pandy jest obecnie zarządzane przez grupę inżynierów i wspierane przez Numfocus Nonfit, która zapewni jej przyszły wzrost i rozwój. Oznacza to, że pandy będą stabilną biblioteką przez wiele lat i mogą być uwzględnione w twoich aplikacjach bez obawy o mały projekt.

Chociaż pandy zostały początkowo opracowane do modelowania danych finansowych, jego struktury danych można wykorzystać do manipulowania różnorodnymi danymi liczbowymi. Pandy ma wiele wbudowanych struktur danych i mogą być używane do łatwego modelowania i manipulowania danymi liczbowymi. Ten samouczek obejmie pandy Ramka danych Struktura danych dogłębnie.

Co to jest ramka danych?

A Ramka danych jest jedną z podstawowych struktur danych w pandy i reprezentuje 2-D zbiór danych. Istnieje wiele analogicznych obiektów do tego typu struktury danych 2-D, z których niektóre obejmują stale popularny arkusz kalkulacyjny Excel, tabela bazy danych lub tablica 2-D znaleziona w większości języków programowania. Poniżej znajduje się przykład Ramka danych w formacie graficznym. Reprezentuje grupę szeregów czasowych cen zamknięcia akcji według daty.

Ten samouczek przeprowadzi cię przez wiele metod ramy danych, a ja użyję rzeczywistego modelu finansowego, aby zademonstrować te funkcje.

Importowanie danych

Zajęcia Pandy mają pewne wbudowane metody pomagające w importowaniu danych do struktury danych. Poniżej znajduje się przykład importowania danych do panelu pandy z Datareader klasa. Można go wykorzystać do importowania danych z kilku bezpłatnych źródeł danych finansowych, w tym Quandl, Yahoo Finance i Google. Aby użyć biblioteki pandy, musisz dodać ją jako import w kodzie.

importować pandy jako PD

Poniższa metoda rozpocznie program, uruchamiając metodę uruchomienia samouczka.

Jeśli __name__ == "__main__":
Tutorial_run ()

Tutorial_run Metoda jest poniżej. Jest to następna metoda, którą dodam do kodu. Pierwszy wiersz tej metody określa listę tykawek zapasowych. Ta zmienna zostanie użyta w dalszej części kodu jako lista zapasów, o które dane będą żądane, aby zapełnić Ramka danych. Drugi wiersz kodu wywołuje otrzymać dane metoda. Jak zobaczymy, otrzymać dane Metoda przyjmuje trzy parametry jako jej wejście. Przejdziemy listę kleszczy zapasowych, datę rozpoczęcia i datę zakończenia danych, o które poprosimy.

def tutorial_run ():
#Stock Tickers to Source From Yahoo Finance
symbole = [„szpieg”, „aapl”, „goog”]
#otrzymać dane
df = get_data (symbole, „2006-01-03”, „2017-12-31”)

Poniżej zdefiniujemy otrzymać dane metoda. Jak wspomniałem powyżej, wymaga trzech parametrów lista symboli, data początkowa i końcowa.

Pierwszy wiersz kodu definiuje panel pandy, tworząc instancję Datareader klasa. Wezwanie do Datareader Klasa połączy się z serwerem Yahoo Finance i zażąda dziennych wysokich, niskich, zamkniętych wartości symbolika lista. Dane te są ładowane do obiektu panelowego przez pandy.

A płyta jest matrycą 3D i można ją uznać za „stos” DataFrame. Każdy Ramka danych w stosie zawiera jedną z dziennych wartości dla żądanych zakresów zapasów i daty. Na przykład poniżej Ramka danych, Przedstawione wcześniej, to cena zamknięcia Ramka danych z żądania. Każdy rodzaj ceny (wysoki, niski, blisko i skorygowany) ma swój własny Ramka danych w wynikającym z tego panelu zwróconym z żądania.

Druga wiersz kodu przekształca panel na jeden Ramka danych i przypisuje powstałe dane df. To będzie moja zmienna dla Ramka danych że używam do końca samouczka. Posiada codzienne wartości bliskie dla trzech akcji dla określonego zakresu daty. Panel jest pokrojony, określając, który z panelu DataFrame chciałbyś wrócić. W tym przykładowym wierszu kodu poniżej jest to „zamknięcie”.

Kiedyś mamy nasze Ramka danych na miejscu, omówię niektóre z przydatnych funkcji w bibliotece PandaS, które pozwoli nam manipulować danymi w Ramka danych obiekt.

def get_data (symbole, start_date, end_date):
Panel = dane.Datareader (symbole, „yahoo”, start_date, end_date)
df = panel [„zamknij”]
Wydrukuj (DF.głowa (5))
Wydrukuj (DF.ogon (5))
zwrócić df

Głowy i ogony

Trzecia i czwarta linia otrzymać dane Wydrukuj głowę funkcji i ogon ramki danych. Uważam to za najbardziej przydatne w debugowaniu i wizualizacji danych, ale można go również użyć do wyboru pierwszej lub ostatniej próbki danych w Ramka danych. Funkcja głowy i ogona wyciąga pierwsze i ostatnie rzędy danych z Ramka danych. Parametr liczb całkowitych między nawiasami określa liczbę wierszy do wybrania metodą.

.loc

Ramka danych loc Metoda wycina Ramka danych według indeksu. Poniższy wiersz kodu wycina df Ramka danych przez indeks 2017-12-12. Dostałem zrzut ekranu wyników poniżej.

Wydrukuj df.loc [„2017-12-12”]

loc może być również stosowany jako dwuwymiarowy plasterek. Pierwszy parametr to wiersz, a drugi parametr to kolumna. Poniższy kod zwraca jedną wartość równą cenie zamknięcia Apple w dniu 12.12.2014.

Wydrukuj df.LOC [„2017-12-12”, „AAPL”]

loc Metodę można zastosować do pokrojonych wszystkich wierszy w kolumnie lub wszystkich kolumnach z rzędu. : Operator służy do oznaczenia wszystkich. Poniższy wiersz kodu wybiera wszystkie wiersze w kolumnie dla Google Conching Ceny.

Wydrukuj df.loc [:, „Goog”]

.Fillna

Powszechne, szczególnie w zestawach danych finansowych, posiadanie wartości NAN w twoim Ramka danych. Pandy zapewnia funkcję wypełniania tych wartości wartością numeryczną. Jest to przydatne, jeśli chcesz wykonać jakieś obliczenia danych, które mogą być wypaczone lub zawieść ze względu na wartości NAN.

.Fillna Metoda zastąpi określoną wartość dla każdej wartości NAN w zestawie danych. Poniższy wiersz kodu wypełni wszystkie NAN w naszym Ramka danych z 0. Tę domyślną wartość można zmienić dla wartości, która zaspokaja potrzebę zestawu danych, z którym pracujesz, aktualizując parametr przekazywany do metody.

df.Fillna (0)

Normalizacja danych

Podczas korzystania z algorytmów uczenia maszynowego lub analizy finansowej często przydatne jest znormalizowanie wartości. Poniższa metoda to skuteczne obliczenia do normalizacji danych w pandy Ramka danych. Zachęcam do użycia tej metody, ponieważ ten kod będzie działał wydajniej niż inne metody normalizacji i może wykazywać duże wzrosty wydajności w dużych zestawach danych.

.I loc jest metodą podobną do .loc ale podejmuje parametry oparte na lokalizacji, a nie parametry oparte na znaczniku. Wymaga indeksu opartego na zero, a nie nazwy kolumny z .loc przykład. Poniższy kod normalizacji jest przykładem niektórych potężnych obliczeń macierzy, które można wykonać. Pomijam lekcję algebry liniowej, ale zasadniczo ten wiersz kodu podzieli całą matrycę lub Ramka danych według pierwszej wartości każdej serii czasowej. W zależności od zestawu danych możesz chcieć normy na podstawie min, maks. Lub. Normy te można również łatwo obliczyć za pomocą stylu opartego na macierzy poniżej.

def normalize_data (df):
zwróć DF / DF.ILOC [0,:]

Wykreślanie danych

Podczas pracy z danymi często konieczne jest reprezentowanie go graficznie. Metoda wykresu pozwala łatwo zbudować wykres z zestawów danych.

Poniższa metoda przyjmuje nasze Ramka danych i wykreślono na standardowym wykresie linii. Metoda wymaga Ramka danych i tytuł jako jego parametry. Pierwszy wiersz zestawów kodów topór do fabuły Dataframe DF. Ustawia tytuł i rozmiar czcionki dla tekstu. Poniższe dwie linie ustawiają etykiety dla osi x i y. Ostateczny wiersz kodu wywołuje metodę show, która drukuje wykres do konsoli. Zapewniłem zrzut ekranu wyników z wykresu poniżej. Reprezentuje znormalizowane ceny zamknięcia dla każdego z akcji w wybranym okresie.

def plot_data (df,):
ax = df.Wykres (tytuł = tytuł, fontsize = 2)
topór.set_xlabel („data”)
topór.set_ylabel („cena”)
działka.pokazywać()

Pandy to solidna biblioteka manipulacji danymi. Może być używany do różnych rodzajów danych i przedstawia zwięzły i wydajny zestaw metod manipulowania zestawem danych. Below I have provided the full code from the tutorial so that you can review and change to meet your needs. Istnieje kilka innych metod, które pomagają w manipulacji danymi i zachęcam do przejrzenia dokumentów pandas opublikowanych na poniższych stronach referencyjnych. Numpy i Matplotlib to dwie inne biblioteki, które dobrze działają w nauce danych i mogą być używane do poprawy mocy biblioteki pandy.

Pełny kod

importować pandy jako PD
def plot_selected (df, kolumny, start_index, end_index):
Plot_Data (df.IX [start_index: end_index, kolumny])
def get_data (symbole, start_date, end_date):
Panel = dane.Datareader (symbole, „yahoo”, start_date, end_date)
df = panel [„zamknij”]
Wydrukuj (DF.głowa (5))
Wydrukuj (DF.ogon (5))
Wydrukuj df.loc [„2017-12-12”]
Wydrukuj df.LOC [„2017-12-12”, „AAPL”]
Wydrukuj df.loc [:, „Goog”]
df.Fillna (0)
zwrócić df
def normalize_data (df):
zwróć DF / DF.ix [0,:]
def plot_data (df,):
ax = df.Wykres (tytuł = tytuł, fontsize = 2)
topór.set_xlabel („data”)
topór.set_ylabel („cena”)
działka.pokazywać()
def tutorial_run ():
#Choleose Symbole
symbole = [„szpieg”, „aapl”, „goog”]
#otrzymać dane
df = get_data (symbole, „2006-01-03”, „2017-12-31”)
Plot_Data (DF)
Jeśli __name__ == "__main__":
Tutorial_run ()

Bibliografia

Strona główna Pandy
Strona Pandas Wikipedia
https: // en.Wikipedia.Org/Wiki/Wes_Mckinney
Strona główna Numfocus