Python Samouczek dotyczący Pand: ramka danych, zakres dat, użycie Pand
Co to jest Pandy Python?
Pandy to biblioteka typu open source, która pozwala na manipulację i analizę danych w Python. Pandy Python biblioteka oferuje manipulację danymi i operacje na danych dla tabel numerycznych i szeregów czasowych. Pandas zapewnia łatwy sposób tworzenia, manipulowania i porządkowania danych. Jest zbudowany na bazie NumPy, co oznacza, że potrzebuje NumPy do działania.
Dlaczego warto używać Pand?
Analitycy danych korzystają z Pand w Python ze względu na następujące zalety:
- Z łatwością radzi sobie z brakującymi danymi
- To używa Seria dla jednowymiarowej struktury danych oraz DataFrame dla wielowymiarowej struktury danych
- Zapewnia skuteczny sposób dzielenia danych
- Zapewnia elastyczny sposób łączenia, łączenia i przekształcania danych
- Zawiera potężne narzędzie do pracy z szeregami czasowymi
Krótko mówiąc, Pandas to przydatna biblioteka w analiza danych. Może być używany do wykonywania manipulacji danymi i analiz. Pandas zapewnia potężne i łatwe w użyciu struktury danych, a także środki do szybkiego wykonywania operacji na tych strukturach.
Jak zainstalować Pandy?
Teraz w tym Python Tutorial Pandas, dowiemy się jak zainstalować Pandy w Python.
Aby zainstalować bibliotekę Pandas, zapoznaj się z naszym tutorialem Jak zainstalować TensorFlow. Pandy są instalowane domyślnie. W zdalnym przypadku pandy nie są zainstalowane -
Możesz zainstalować Pandy za pomocą:
- Anaconda: conda install -c anaconda pandy
- In Jupyter Zeszyt :
import sys !conda install --yes --prefix {sys.prefix} pandas
Co to jest ramka danych Pandy?
Pandy DataFrame jest dwuwymiarową tablicą z oznaczoną strukturą danych zawierającą różne typy kolumn. DataFrame to standardowy sposób przechowywania danych w formacie tabelarycznym, z wierszami do przechowywania informacji i kolumnami do nazywania informacji. Na przykład cena może być nazwą kolumny, a 2,3,4 może być wartością ceny.
Ramka danych jest dobrze znana statystykom i innym specjalistom zajmującym się danymi.
Poniżej zdjęcie ramki danych Pandy:
Co to jest seria?
Seria to jednowymiarowa struktura danych. Może mieć dowolną strukturę danych, taką jak liczba całkowita, zmiennoprzecinkowa i ciąg znaków. Jest to przydatne, gdy chcesz wykonać obliczenia lub zwrócić tablicę jednowymiarową. Seria z definicji nie może mieć wielu kolumn. W tym drugim przypadku należy skorzystać ze struktury ramki danych.
Python Seria Pandas charakteryzuje się następującymi parametrami:
- Dane: mogą być listą, słownikiem lub wartością skalarną
pd.Series([1., 2., 3.])
0 1.0 1 2.0 2 3.0 dtype: float64
Możesz dodać indeks za pomocą pliku Index. Pomaga nazwać wiersze. Długość powinna być równa wielkości kolumny
pd.Series([1., 2., 3.], index=['a', 'b', 'c'])
Poniżej tworzysz serię Pandy z brakującą wartością w trzecich wierszach. Uwaga, brakujące wartości w Python są oznaczone jako „NaN”. Możesz użyć numpy, aby sztucznie utworzyć brakującą wartość: np.nan
pd.Series([1,2,np.nan])
Wydajność
0 1.0 1 2.0 2 NaN dtype: float64
Utwórz ramkę danych Pandy
W tym samouczku Pandas DataFrame nauczymy się tworzyć Python Ramka danych Pandy:
Możesz przekonwertować tablicę numpy na ramkę danych pandy za pomocą pd.Data Frame(). Możliwe jest również coś odwrotnego. Aby przekonwertować ramkę danych pandy na tablicę, możesz użyć np.array()
## Numpy to pandas import numpy as np h = [[1,2],[3,4]] df_h = pd.DataFrame(h) print('Data Frame:', df_h) ## Pandas to numpy df_h_n = np.array(df_h) print('Numpy array:', df_h_n) Data Frame: 0 1 0 1 2 1 3 4 Numpy array: [[1 2] [3 4]]
Możesz także użyć słownika, aby utworzyć ramkę danych Pandy.
dic = {'Name': ["John", "Smith"], 'Age': [30, 40]} pd.DataFrame(data=dic)
Wiek | Nazwa | |
---|---|---|
0 | 30 | John |
1 | 40 | Kowal |
Dane dotyczące zasięgu pand
Pandy mają wygodny interfejs API do tworzenia zakresu dat. Uczmy się z Python Przykłady pand:
pd.data_range(data,kropka,częstotliwość):
- Pierwszym parametrem jest data początkowa
- Drugim parametrem jest ilość okresów (opcjonalna w przypadku podania daty końcowej)
- Ostatnim parametrem jest częstotliwość: dzień: „D”, miesiąc: „M” i rok: „Y”.
## Create date # Days dates_d = pd.date_range('20300101', periods=6, freq='D') print('Day:', dates_d)
Wydajność
Day: DatetimeIndex(['2030-01-01', '2030-01-02', '2030-01-03', '2030-01-04', '2030-01-05', '2030-01-06'], dtype='datetime64[ns]', freq='D')
# Months dates_m = pd.date_range('20300101', periods=6, freq='M') print('Month:', dates_m)
Wydajność
Month: DatetimeIndex(['2030-01-31', '2030-02-28', '2030-03-31', '2030-04-30','2030-05-31', '2030-06-30'], dtype='datetime64[ns]', freq='M')
Sprawdzanie danych
Możesz sprawdzić nagłówek lub ogon zbioru danych za pomocą funkcji head() lub tail() poprzedzonej nazwą ramki danych pandy, jak pokazano w poniższym przykładzie Pandy:
Krok 1) Utwórz losową sekwencję za pomocą tępy. Sekwencja ma 4 kolumny i 6 wierszy
random = np.random.randn(6,4)
Krok 2) Następnie tworzysz ramkę danych za pomocą pand.
Użyj date_m jako indeksu ramki danych. Oznacza to, że każdemu wierszowi zostanie nadana „nazwa” lub indeks odpowiadający dacie.
Na koniec nadajesz nazwę 4 kolumnom za pomocą kolumn argumentów
# Create data with date df = pd.DataFrame(random, index=dates_m, columns=list('ABCD'))
Krok 3) Korzystanie z funkcji głowy
df.head(3)
A | B | C | D | |
---|---|---|---|---|
2030-01-31 | 1.139433 | 1.318510 | -0.181334 | 1.615822 |
2030-02-28 | -0.081995 | -0.063582 | 0.857751 | -0.527374 |
2030-03-31 | -0.519179 | 0.080984 | -1.454334 | 1.314947 |
Krok 4) Korzystanie z funkcji ogona
df.tail(3)
A | B | C | D | |
---|---|---|---|---|
2030-04-30 | -0.685448 | -0.011736 | 0.622172 | 0.104993 |
2030-05-31 | -0.935888 | -0.731787 | -0.558729 | 0.768774 |
2030-06-30 | 1.096981 | 0.949180 | -0.196901 | -0.471556 |
Krok 5) Doskonałą praktyką, aby uzyskać wskazówkę dotyczącą danych, jest użycie metody opisu(). Podaje liczbę, średnią, std, min, max i percentyl zbioru danych.
df.describe()
A | B | C | D | |
---|---|---|---|---|
liczyć | 6.000000 | 6.000000 | 6.000000 | 6.000000 |
oznaczać | 0.002317 | 0.256928 | -0.151896 | 0.467601 |
std | 0.908145 | 0.746939 | 0.834664 | 0.908910 |
min | -0.935888 | -0.731787 | -1.454334 | -0.527374 |
25% | -0.643880 | -0.050621 | -0.468272 | -0.327419 |
50% | -0.300587 | 0.034624 | -0.189118 | 0.436883 |
75% | 0.802237 | 0.732131 | 0.421296 | 1.178404 |
max | 1.139433 | 1.318510 | 0.857751 | 1.615822 |
Dane plasterka
Ostatni punkt tego Python Samouczek Pandy dotyczy dzielenia ramki danych pandy.
Możesz użyć nazwy kolumny, aby wyodrębnić dane z konkretnej kolumny, jak pokazano w poniższym przykładzie Pandy:
## Slice ### Using name df['A'] 2030-01-31 -0.168655 2030-02-28 0.689585 2030-03-31 0.767534 2030-04-30 0.557299 2030-05-31 -1.547836 2030-06-30 0.511551 Freq: M, Name: A, dtype: float64
Aby zaznaczyć wiele kolumn, należy użyć podwójnego nawiasu, [[..,..]]
Pierwsza para nawiasów oznacza, że chcesz wybrać kolumny, druga para nawiasów mówi, jakie kolumny chcesz zwrócić.
df[['A', 'B']].
A | B | |
---|---|---|
2030-01-31 | -0.168655 | 0.587590 |
2030-02-28 | 0.689585 | 0.998266 |
2030-03-31 | 0.767534 | -0.940617 |
2030-04-30 | 0.557299 | 0.507350 |
2030-05-31 | -1.547836 | 1.276558 |
2030-06-30 | 0.511551 | 1.572085 |
Możesz pokroić wiersze za pomocą:
Poniższy kod zwraca pierwsze trzy wiersze
### using a slice for row df[0:3]
A | B | C | D | |
---|---|---|---|---|
2030-01-31 | -0.168655 | 0.587590 | 0.572301 | -0.031827 |
2030-02-28 | 0.689585 | 0.998266 | 1.164690 | 0.475975 |
2030-03-31 | 0.767534 | -0.940617 | 0.227255 | -0.341532 |
Funkcja loc służy do wybierania kolumn według nazw. Jak zwykle, wartości przed przecinkiem oznaczają wiersze, a po nim odnoszą się do kolumny. Aby wybrać więcej niż jedną kolumnę, należy użyć nawiasów.
## Multi col df.loc[:,['A','B']]
A | B | |
---|---|---|
2030-01-31 | -0.168655 | 0.587590 |
2030-02-28 | 0.689585 | 0.998266 |
2030-03-31 | 0.767534 | -0.940617 |
2030-04-30 | 0.557299 | 0.507350 |
2030-05-31 | -1.547836 | 1.276558 |
2030-06-30 | 0.511551 | 1.572085 |
Istnieje inna metoda zaznaczania wielu wierszy i kolumn w Pandach. Możesz użyć iloc[]. Ta metoda używa indeksu zamiast nazwy kolumny. Poniższy kod zwraca tę samą ramkę danych, co powyżej
df.iloc[:, :2]
A | B | |
---|---|---|
2030-01-31 | -0.168655 | 0.587590 |
2030-02-28 | 0.689585 | 0.998266 |
2030-03-31 | 0.767534 | -0.940617 |
2030-04-30 | 0.557299 | 0.507350 |
2030-05-31 | -1.547836 | 1.276558 |
2030-06-30 | 0.511551 | 1.572085 |
Upuść kolumnę
Możesz upuszczać kolumny za pomocą pd.drop()
df.drop(columns=['A', 'C'])
B | D | |
---|---|---|
2030-01-31 | 0.587590 | -0.031827 |
2030-02-28 | 0.998266 | 0.475975 |
2030-03-31 | -0.940617 | -0.341532 |
2030-04-30 | 0.507350 | -0.296035 |
2030-05-31 | 1.276558 | 0.523017 |
2030-06-30 | 1.572085 | -0.594772 |
Powiązanie
Możesz połączyć dwie ramki danych w Pandach. Możesz użyć pd.concat()
Przede wszystkim musisz utworzyć dwie ramki danych. Jak dotąd wszystko w porządku, znasz już tworzenie ramek danych
import numpy as np df1 = pd.DataFrame({'name': ['John', 'Smith','Paul'], 'Age': ['25', '30', '50']}, index=[0, 1, 2]) df2 = pd.DataFrame({'name': ['Adam', 'Smith' ], 'Age': ['26', '11']}, index=[3, 4])
Na koniec łączysz dwie ramki DataFrame
df_concat = pd.concat([df1,df2]) df_concat
Wiek | Nazwa | |
---|---|---|
0 | 25 | John |
1 | 30 | Kowal |
2 | 50 | Paweł |
3 | 26 | Adam |
4 | 11 | Kowal |
Upuść_duplikaty
Jeśli zbiór danych może zawierać zduplikowane informacje, „drop_duplicates” pozwala łatwo wykluczyć zduplikowane wiersze. Możesz zobaczyć, że `df_concat` ma zduplikowaną obserwację, `Smith` pojawia się dwukrotnie w kolumnie `name.`
df_concat.drop_duplicates('name')
Wiek | Nazwa | |
---|---|---|
0 | 25 | John |
1 | 30 | Kowal |
2 | 50 | Paweł |
3 | 26 | Adam |
Sortuj wartości
Możesz sortować wartości za pomocą sort_values
df_concat.sort_values('Age')
Wiek | Nazwa | |
---|---|---|
4 | 11 | Kowal |
0 | 25 | John |
3 | 26 | Adam |
1 | 30 | Kowal |
2 | 50 | Paweł |
Zmień nazwę: zmiana indeksu
Możesz użyć opcji Zmień nazwę, aby zmienić nazwę kolumny w Pandach. Pierwsza wartość to bieżąca nazwa kolumny, a druga wartość to nowa nazwa kolumny.
df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
Wiek_os | Nazwisko | |
---|---|---|
0 | 25 | John |
1 | 30 | Kowal |
2 | 50 | Paweł |
3 | 26 | Adam |
4 | 11 | Kowal |
Podsumowanie
Poniżej znajduje się podsumowanie najbardziej przydatnej metody analizy danych przy użyciu Pand
zaimportować dane | przeczytaj_csv |
---|---|
stworzyć serię | Seria |
Utwórz ramkę danych | Ramka danych |
Utwórz zakres dat | zakres dat |
powrót głowy | głowa |
zwrotny ogon | ogon |
Opisać | opisać |
plasterek używając nazwy | nazwa danych ['nazwa kolumny'] |
Pokrój za pomocą rzędów | nazwa_danych[0:5] |