Python Pandák bemutatója: DataFrame, dátumtartomány, Pandák használata

Mi az a Panda Python?

pandák egy nyílt forráskódú könyvtár, amely lehetővé teszi az adatok kezelését és elemzését Python. Pandák Python A könyvtár adatkezelést és adatműveleteket kínál numerikus táblákhoz és idősorokhoz. A pandák egyszerű módot kínálnak az adatok létrehozására, manipulálására és vitatására. A NumPy tetejére épül, ami azt jelenti, hogy működéséhez NumPy-re van szüksége.

Miért érdemes Pandát használni?

Az adattudósok a pandákat használják Python a következő előnyei miatt:

  • Könnyen kezeli a hiányzó adatokat
  • Használja Sorozat egydimenziós adatszerkezethez és a DataFrame többdimenziós adatszerkezethez
  • Hatékony módot biztosít az adatok szeletelésére
  • Rugalmas módot biztosít az adatok egyesítésére, összefűzésére vagy átformálására
  • Tartalmaz egy hatékony idősor-eszközt, amellyel dolgozni lehet

Dióhéjban a Pandas hasznos könyvtár adatelemzés. Használható adatok manipulálására és elemzésére. A pandák hatékony és könnyen használható adatstruktúrákat biztosítanak, valamint a műveletek gyors végrehajtását ezeken a struktúrákon.

Hogyan telepítsük a pandákat?

Most ebben Python Pandas oktatóanyag, megtanuljuk, hogyan kell telepíteni a Pandákat Python.

A Pandas könyvtár telepítéséhez tekintse meg oktatóanyagunkat A TensorFlow telepítése. A Pandas alapértelmezés szerint telepítve van. Távoli esetben a pandák nincsenek telepítve-

A Pandákat a következő módon telepítheti:

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

Mi az a Pandas DataFrame?

Pandas DataFrame egy kétdimenziós tömb címkézett adatszerkezettel, különböző oszloptípusokkal. A DataFrame az adatok táblázatos formátumú tárolásának szabványos módja, amely sorokban tárolja az információkat és oszlopokat az információk elnevezésére. Például az ár lehet egy oszlop neve, a 2,3,4 pedig az árértékek.

A Data Frame-et jól ismerik a statisztikusok és más adatkezelők.

Lent egy Pandas adatkeret képe:

Pandas DataFrame

Mi az a sorozat?

A sorozat egy egydimenziós adatstruktúra. Bármilyen adatszerkezettel rendelkezhet, például egész, float és karakterlánc. Akkor hasznos, ha számítást szeretne végezni, vagy egydimenziós tömböt szeretne visszaadni. Egy sorozatnak értelemszerűen nem lehet több oszlopa. Ez utóbbi esetben kérjük, használja az adatkeret-struktúrát.

Python A Pandas sorozat a következő paraméterekkel rendelkezik:

  • Adatok: lehet lista, szótár vagy skaláris érték
pd.Series([1., 2., 3.])
0    1.0
1    2.0
2    3.0
dtype: float64

Az indexet indexszel is hozzáadhatja. Segít a sorok elnevezésében. A hossznak meg kell egyeznie az oszlop méretével

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

Az alábbiakban egy Pandas sorozatot hoz létre, amelynek harmadik soraihoz hiányzik az érték. Megjegyzés: hiányoznak az értékek Python „NaN”-nek jelölik. Használhatja a numpy-t a hiányzó érték létrehozásához: np.nan mesterségesen

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

teljesítmény

0    1.0
1    2.0
2    NaN
dtype: float64

Hozzon létre Pandas DataFrame-et

Ebben a Pandas DataFrame oktatóanyagban megtanuljuk, hogyan kell létrehozni Python Pandas adatkeret:

A numpy tömböt a pd.Data frame() segítségével pandas adatkeretté alakíthatja. Az ellenkezője is lehetséges. A pandas adatkeret tömbbé alakításához az 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]]

Pandas adatkeret létrehozásához szótárt is használhat.

dic = {'Name': ["John", "Smith"], 'Age': [30, 40]}
pd.DataFrame(data=dic)
Kor Név
0 30 János
1 40 Kovács

Panda-tartomány adatai

A pandák kényelmes API-val rendelkeznek a dátumtartomány létrehozásához. Tanuljunk vele Python Példák a pandákra:

pd.data_range(dátum,időszak,gyakoriság):

  • Az első paraméter a kezdő dátum
  • A második paraméter az időszakok száma (nem kötelező, ha a befejezési dátum meg van adva)
  • Az utolsó paraméter a gyakoriság: nap: 'D' hónap: 'M' és év: 'Y.'
## Create date
# Days
dates_d = pd.date_range('20300101', periods=6, freq='D')
print('Day:', dates_d)

teljesítmény

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)

teljesítmény

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

Adatok vizsgálata

Ellenőrizheti az adatkészlet fejét vagy farkát a head() vagy a tail() paranccsal, amelyet a panda adatkeretének neve előz meg, ahogy az alábbi Panda példában látható:

Step 1) Hozzon létre egy véletlenszerű sorozatot a számtalan. A sorozat 4 oszlopból és 6 sorból áll

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

Step 2) Ezután létrehoz egy adatkeretet a pandák segítségével.

Használja a dates_m indexet az adatkerethez. Ez azt jelenti, hogy minden sor egy dátumnak megfelelő „nevet” vagy indexet kap.

Végül adjon nevet a 4 oszlopnak az argumentum oszlopokkal

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

Step 3) A fej funkció használata

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

4. lépés) A farok funkció használata

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

5. lépés) Kiváló gyakorlat az adatok megismeréséhez a description() használata. Megadja az adatkészlet számlálását, átlagát, std-jét, min., maximumát és százalékát.

df.describe()
A B C D
számít 6.000000 6.000000 6.000000 6.000000
jelent 0.002317 0.256928 -0.151896 0.467601
std 0.908145 0.746939 0.834664 0.908910
perc -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

Szelet adatok

Ennek az utolsó pontja Python A Pandas oktatóanyag arról szól, hogyan lehet felszeletelni egy panda adatkeretet.

Használhatja az oszlop nevét egy adott oszlop adatainak kinyerésére, ahogy az alábbi Panda példában látható:

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

Több oszlop kiválasztásához a zárójelet kétszer kell használni, [[..,..]]

Az első zárójelpár azt jelenti, hogy oszlopokat szeretne kijelölni, a második zárójelpár pedig azt, hogy milyen oszlopokat szeretne visszaadni.

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

A sorokat a következőkkel vághatja fel:

Az alábbi kód az első három sort adja vissza

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

A loc funkció az oszlopok név szerinti kiválasztására szolgál. Szokás szerint a kóma előtti értékek a sorokat, az utána pedig az oszlopot jelentik. Egynél több oszlop kijelöléséhez használja a zárójeleket.

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

Van egy másik módszer is több sor és oszlop kiválasztására a Pandákban. Használhatja az iloc[]-t. Ez a módszer az indexet használja az oszlopok neve helyett. Az alábbi kód ugyanazt az adatkeretet adja vissza, mint fent

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

Dobj egy oszlopot

Az oszlopokat a 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

láncolat

A Pandasban két DataFrame-et is összefűzhet. Használhatja a pd.concat()

Először is létre kell hoznia két DataFrame-et. Eddig minden rendben, Ön már ismeri az adatkeret létrehozását

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

Végül összefűzi a két DataFrame-et

df_concat = pd.concat([df1,df2]) 
df_concat
Kor név
0 25 János
1 30 Kovács
2 50 Paul
3 26 Ádám
4 11 Kovács

Drop_duplicates

Ha egy adatkészlet duplikált információhasználatot tartalmazhat, a "drop_duplicates" egy könnyen kizárható ismétlődő sorok. Látható, hogy a `df_concat' duplikált megfigyelést tartalmaz, a 'Smith' kétszer jelenik meg a 'name' oszlopban.

df_concat.drop_duplicates('name')
Kor név
0 25 János
1 30 Kovács
2 50 Paul
3 26 Ádám

Értékek rendezése

Az értékeket a sort_values ​​paraméterrel rendezheti

df_concat.sort_values('Age')
Kor név
4 11 Kovács
0 25 János
3 26 Ádám
1 30 Kovács
2 50 Paul

Átnevezés: index módosítása

Az átnevezés segítségével átnevezheti egy oszlopot a Pandasban. Az első érték az aktuális oszlopnév, a második érték az új oszlopnév.

df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
Age_ppl Vezetéknév
0 25 János
1 30 Kovács
2 50 Paul
3 26 Ádám
4 11 Kovács

Összegzésként

Az alábbiakban összefoglaljuk a Pandákkal végzett adattudomány leghasznosabb módszerét

adatok importálása read_csv
sorozatot készíteni Series of
Adatkeret létrehozása DataFrame
Dátumtartomány létrehozása időintervallum
vissza a fejét fej
visszatérő farok farok
Írja le leírni
szelet a név használatával adatnév['oszlopnév']
Szeletelje fel sorok segítségével adat_név[0:5]