Python Pandas Tutorial: DataFrame, Date Range, Use Pandas

Co je Pandas Python?

Pandy je open-source knihovna, která vám umožňuje provádět manipulaci s daty a analýzu v Python. pandy Python knihovna nabízí manipulaci s daty a datové operace pro číselné tabulky a časové řady. Pandy poskytují snadný způsob, jak vytvářet, manipulovat a lámat si data. Je postaven na vrcholu NumPy, což znamená, že k provozu potřebuje NumPy.

Proč používat Pandy?

Datoví vědci využívají Pandy v Python pro jeho následující výhody:

  • Snadno si poradí s chybějícími daty
  • Používá to Řada pro jednorozměrnou datovou strukturu si DataFrame pro vícerozměrnou datovou strukturu
  • Poskytuje efektivní způsob dělení dat
  • Poskytuje flexibilní způsob, jak sloučit, zřetězit nebo přetvořit data
  • Obsahuje výkonný nástroj pro práci s časovými řadami

Stručně řečeno, Pandy jsou užitečnou knihovnou analýza dat. Lze jej použít k manipulaci a analýze dat. Pandy poskytují výkonné a snadno použitelné datové struktury a také prostředky pro rychlé provádění operací na těchto strukturách.

Jak nainstalovat Pandy?

Nyní v tomto Python Tutoriál Pandy, naučíme se, jak nainstalovat Pandy Python.

Chcete-li nainstalovat knihovnu Pandas, podívejte se na náš tutoriál Jak nainstalovat TensorFlow. Ve výchozím nastavení jsou nainstalovány Pandy. Ve vzdáleném případě, pandy nejsou nainstalovány-

Pandy můžete nainstalovat pomocí:

  • Anaconda: conda install -c anaconda pandas
  • In Jupyter notebook:
import sys
!conda install --yes --prefix {sys.prefix} pandas

Co je Pandas DataFrame?

Pandas DataFrame je dvourozměrné pole s označenou datovou strukturou s různými typy sloupců. DataFrame je standardní způsob ukládání dat v tabulkovém formátu s řádky pro uložení informací a sloupci pro pojmenování informací. Například cena může být název sloupce a 2,3,4 mohou být hodnoty ceny.

Datový rámec dobře znají statistikové a další odborníci na data.

Níže je obrázek datového rámce Pandas:

Pandas DataFrame

Co je série?

Řada je jednorozměrná datová struktura. Může mít libovolnou datovou strukturu, jako je celé číslo, float a řetězec. Je to užitečné, když chcete provést výpočet nebo vrátit jednorozměrné pole. Řada podle definice nemůže mít více sloupců. V druhém případě použijte strukturu datového rámce.

Python Řada Pandas má následující parametry:

  • Data: může to být seznam, slovník nebo skalární hodnota
pd.Series([1., 2., 3.])
0    1.0
1    2.0
2    3.0
dtype: float64

Index můžete přidat pomocí indexu. Pomáhá pojmenovat řádky. Délka by se měla rovnat velikosti sloupce

pd.Series([1., 2., 3.], index=['a', 'b', 'c'])

Níže vytvoříte sérii Pandas s chybějící hodnotou pro třetí řádky. Poznámka, chybějící hodnoty v Python jsou označeny „NaN“. Můžete použít numpy k vytvoření chybějící hodnoty: np.nan uměle

pd.Series([1,2,np.nan])

Výstup

0    1.0
1    2.0
2    NaN
dtype: float64

Vytvořte Pandas DataFrame

Nyní v tomto tutoriálu Pandas DataFrame se naučíme, jak vytvořit Python Datový rámec Pandy:

Numpy pole můžete převést na datový rámec pandas pomocí pd.Data frame(). Je možný i opak. Chcete-li převést datový rámec pandy na pole, můžete použít 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]]

K vytvoření datového rámce Pandas můžete také použít slovník.

dic = {'Name': ["John", "Smith"], 'Age': [30, 40]}
pd.DataFrame(data=dic)
věk Jméno
0 30 Jan
1 40 kovář

Údaje o dosahu pand

Pandy mají pohodlné API pro vytvoření rozsahu dat. Učme se s Python Příklady pand:

pd.data_range(datum,období,frekvence):

  • Prvním parametrem je počáteční datum
  • Druhý parametr je počet období (volitelné, pokud je zadáno datum ukončení)
  • Posledním parametrem je frekvence: den: 'D', měsíc: 'M' a rok: 'Y.'
## Create date
# Days
dates_d = pd.date_range('20300101', periods=6, freq='D')
print('Day:', dates_d)

Výstup

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)

Výstup

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')

Kontrola dat

Hlavu nebo konec datové sady můžete zkontrolovat pomocí head() nebo tail(), před kterým je uveden název datového rámce pandy, jak je znázorněno v níže uvedeném příkladu Pandy:

Krok 1) Vytvořte náhodnou sekvenci pomocí otupělý. Sekvence má 4 sloupce a 6 řádků

random = np.random.randn(6,4)

Krok 2) Poté vytvoříte datový rámec pomocí pand.

Použijte date_m jako index pro datový rámec. To znamená, že každý řádek bude mít „jméno“ nebo index odpovídající datu.

Nakonec pojmenujete 4 sloupce se sloupci argumentů

# Create data with date
df = pd.DataFrame(random,
                  index=dates_m,
                  columns=list('ABCD'))

Krok 3) Použití funkce hlavy

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) Použití funkce ocasu

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) Skvělým postupem, jak získat ponětí o datech, je použít description(). Poskytuje počty, průměr, standardní, minimální, maximální a percentil datové sady.

df.describe()
A B C D
počítat 6.000000 6.000000 6.000000 6.000000
střední 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

Slice Data

Poslední bod tohoto Python Výukový program Pandas je o tom, jak rozdělit datový rámec pandy.

Název sloupce můžete použít k extrahování dat v konkrétním sloupci, jak je znázorněno v níže uvedeném příkladu 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

Chcete-li vybrat více sloupců, musíte použít dvojnásobek hranaté závorky, [[..,..]]

První pár závorek znamená, že chcete vybrat sloupce, druhý pár závorek říká, které sloupce chcete vrátit.

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

Řádky můžete krájet pomocí:

Níže uvedený kód vrátí první tři řádky

### 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

Funkce loc se používá k výběru sloupců podle názvů. Jako obvykle platí, že hodnoty před čárkou znamenají řádky a za ní se vztahují ke sloupci. Chcete-li vybrat více než jeden sloupec, musíte použít závorky.

## 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

Existuje další způsob, jak vybrat více řádků a sloupců v Pandas. Můžete použít iloc[]. Tato metoda používá index namísto názvu sloupce. Níže uvedený kód vrací stejný datový rámec jako výše

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

Pusťte sloupec

Sloupce můžete zrušit 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

Zřetězení

V Pandas můžete zřetězit dva DataFrame. Můžete použít pd.concat()

Nejprve je potřeba vytvořit dva DataFrames. Zatím je to dobré, už jste obeznámeni s tvorbou datových rámců

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])  

Nakonec zřetězíte dva DataFrame

df_concat = pd.concat([df1,df2]) 
df_concat
věk název
0 25 Jan
1 30 kovář
2 50 Paul
3 26 Adam
4 11 kovář

Drop_duplicates

Pokud datová sada může obsahovat duplicitní informace, lze duplicitní řádky snadno vyloučit pomocí příkazu `drop_duplicates`. Můžete vidět, že `df_concat` má duplicitní pozorování, `Smith` se ve sloupci `jméno` objeví dvakrát.

df_concat.drop_duplicates('name')
věk název
0 25 Jan
1 30 kovář
2 50 Paul
3 26 Adam

Seřadit hodnoty

Hodnotu můžete třídit pomocí sort_values

df_concat.sort_values('Age')
věk název
4 11 kovář
0 25 Jan
3 26 Adam
1 30 kovář
2 50 Paul

Přejmenovat: změna indexu

Přejmenovat můžete k přejmenování sloupce v Pandas. První hodnota je název aktuálního sloupce a druhá hodnota je název nového sloupce.

df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
Age_ppl Příjmení
0 25 Jan
1 30 kovář
2 50 Paul
3 26 Adam
4 11 kovář

Shrnutí

Níže je uveden souhrn nejužitečnějších metod pro datovou vědu s Pandas

importovat data read_csv
vytvořit sérii Série
Vytvořit datový rámec DataFrame
Vytvořte časové období časové období
vrátit hlavu hlava
zpětný ocas ocas
Popsat popsat
řez pomocí názvu dataname['columnname']
Nakrájejte pomocí řádků data_name[0:5]