Python Panda-opetusohjelma: DataFrame, päivämääräalue, Pandan käyttö
Mikä on Pandas Python?
Panda on avoimen lähdekoodin kirjasto, jonka avulla voit käsitellä ja analysoida tietoja Python. Pandat Python kirjasto tarjoaa tietojen käsittelyä ja dataoperaatioita numeerisille taulukoille ja aikasarjoille. Pandat tarjoavat helpon tavan luoda, käsitellä ja kiistellä tietoja. Se on rakennettu NumPyn päälle, mikä tarkoittaa, että se tarvitsee NumPyn toimiakseen.
Miksi käyttää Pandaa?
Tietotieteilijät käyttävät Pandaa vuonna Python seuraavien etujensa vuoksi:
- Käsittelee helposti puuttuvat tiedot
- Se käyttää Sarja yksiulotteiseen tietorakenteeseen ja DataFrame moniulotteiseen tietorakenteeseen
- Se tarjoaa tehokkaan tavan leikata tietoja
- Se tarjoaa joustavan tavan yhdistää, ketjuttaa tai muokata tietoja
- Se sisältää tehokkaan aikasarjatyökalun
Lyhyesti sanottuna Pandas on hyödyllinen kirjasto tietojen analysointi. Sitä voidaan käyttää tietojen käsittelyyn ja analysointiin. Pandat tarjoavat tehokkaita ja helppokäyttöisiä tietorakenteita sekä keinoja suorittaa toimintoja nopeasti näillä rakenteilla.
Kuinka Pandat asennetaan?
Nyt tässä Python Panda-opetusohjelma, opimme asentamaan Pandat sisään Python.
Asenna Pandas-kirjasto tutustumalla opetusohjelmaamme Kuinka asentaa TensorFlow. Pandas on asennettu oletusarvoisesti. Etätapauksessa pandaa ei ole asennettu -
Voit asentaa Pandat käyttämällä:
- Anaconda: conda install -c anaconda pandas
- In Jupyter Muistikirja :
import sys !conda install --yes --prefix {sys.prefix} pandas
Mikä on Pandas DataFrame?
Pandas DataFrame on kaksiulotteinen taulukko, jossa on merkitty tietorakenne ja jossa on erilaisia saraketyyppejä. DataFrame on tavallinen tapa tallentaa tietoja taulukkomuodossa, jossa on rivejä tietojen tallentamiseen ja sarakkeita tietojen nimeämiseen. Esimerkiksi hinta voi olla sarakkeen nimi ja 2,3,4 voi olla hinta-arvoja.
Data Frame on tilastotieteilijät ja muut tiedonharjoittajat tunteneet hyvin.
Alla kuva Pandas-tietokehyksestä:
Mikä on sarja?
Sarja on yksiulotteinen tietorakenne. Sillä voi olla mikä tahansa tietorakenne, kuten kokonaisluku, float ja merkkijono. Se on hyödyllinen, kun haluat suorittaa laskennan tai palauttaa yksiulotteisen taulukon. Sarjalla ei voi määritelmän mukaan olla useita sarakkeita. Käytä jälkimmäisessä tapauksessa tietokehysrakennetta.
Python Pandas-sarjalla on seuraavat parametrit:
- Data: voi olla luettelo, sanakirja tai skalaariarvo
pd.Series([1., 2., 3.])
0 1.0 1 2.0 2 3.0 dtype: float64
Voit lisätä indeksin indeksillä. Se auttaa rivien nimeämisessä. Pituuden tulee olla yhtä suuri kuin sarakkeen koko
pd.Series([1., 2., 3.], index=['a', 'b', 'c'])
Alla luot Pandas-sarjan, josta puuttuu arvo kolmansilta riveiltä. Huomaa, arvot puuttuvat Python on merkitty "NaN". Voit käyttää numpya puuttuvan arvon luomiseen: np.nan keinotekoisesti
pd.Series([1,2,np.nan])
ulostulo
0 1.0 1 2.0 2 NaN dtype: float64
Luo Pandas DataFrame
Nyt tässä Pandas DataFrame -opetusohjelmassa opimme luomaan Python Pandas-tietokehys:
Voit muuntaa numpy-taulukon panda-tietokehykseksi komennolla pd.Data frame(). Myös päinvastainen on mahdollista. Voit muuntaa pandan tietokehyksen taulukoksi käyttämällä 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]]
Voit myös luoda Pandas-tietokehyksen sanakirjan avulla.
dic = {'Name': ["John", "Smith"], 'Age': [30, 40]} pd.DataFrame(data=dic)
Ikä | Nimi | |
---|---|---|
0 | 30 | Johannes |
1 | 40 | Seppä |
Pandasin aluetiedot
Pandassa on kätevä API päivämääräalueen luomiseen. Opitaan kanssa Python Esimerkkejä pandasta:
pd.data_range(päivämäärä,jakso,frekvenssi):
- Ensimmäinen parametri on aloituspäivämäärä
- Toinen parametri on jaksojen lukumäärä (valinnainen, jos lopetuspäivä on määritetty)
- Viimeinen parametri on taajuus: päivä: "D", kuukausi: "M" ja vuosi: "Y".
## Create date # Days dates_d = pd.date_range('20300101', periods=6, freq='D') print('Day:', dates_d)
ulostulo
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)
ulostulo
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')
Tarkastetaan tietoja
Voit tarkistaa tietojoukon pään tai hännän komennolla head(), tai tail(), jota edeltää pandan tietokehyksen nimi, kuten alla olevassa Panda-esimerkissä näkyy:
Vaihe 1) Luo satunnainen sekvenssi kanssa numpy. Sarjassa on 4 saraketta ja 6 riviä
random = np.random.randn(6,4)
Vaihe 2) Sitten luot tietokehyksen pandoilla.
Käytä datakehyksen indeksinä päivämäärät_m. Se tarkoittaa, että jokaiselle riville annetaan "nimi" tai indeksi, joka vastaa päivämäärää.
Lopuksi annat nimet 4 sarakkeelle argumenttisarakkeineen
# Create data with date df = pd.DataFrame(random, index=dates_m, columns=list('ABCD'))
Vaihe 3) Päätoiminnon käyttö
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 |
Vaihe 4) Tail-toiminnon käyttö
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 |
Vaihe 5) Erinomaisena tapana saada tietoa tiedoista on käyttää description(). Se tarjoaa tietojoukon lukumäärät, keskiarvon, std:n, min, maxin ja prosenttipisteen.
df.describe()
A | B | C | D | |
---|---|---|---|---|
laskea | 6.000000 | 6.000000 | 6.000000 | 6.000000 |
tarkoittaa | 0.002317 | 0.256928 | -0.151896 | 0.467601 |
std | 0.908145 | 0.746939 | 0.834664 | 0.908910 |
minuuttia | -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 |
Leikkaa tiedot
Tämän viimeinen kohta Python Pandas-opetusohjelmassa kerrotaan, kuinka pandadatakehys leikataan.
Voit käyttää sarakkeen nimeä tietojen poimimiseen tietystä sarakkeesta alla olevan Panda-esimerkin mukaisesti:
## 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
Jos haluat valita useita sarakkeita, sinun on käytettävä kaksinkertaista hakasulkua [[..,..]]
Ensimmäinen hakasulkupari tarkoittaa, että haluat valita sarakkeita, toinen hakasulkepari kertoo, mitkä sarakkeet haluat palauttaa.
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 |
Voit leikata rivit:
Alla oleva koodi palauttaa kolme ensimmäistä riviä
### 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 |
loc-toimintoa käytetään sarakkeiden valitsemiseen nimien perusteella. Kuten tavallista, arvot ennen koomaa tarkoittavat rivejä ja sen jälkeen viittaavat sarakkeeseen. Sinun on käytettävä sulkeita valitaksesi useamman kuin yhden sarakkeen.
## 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 |
On toinenkin tapa valita useita rivejä ja sarakkeita Pandasissa. Voit käyttää iloc[]. Tämä menetelmä käyttää indeksiä sarakkeiden nimen sijaan. Alla oleva koodi palauttaa saman datakehyksen kuin yllä
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 |
Pudota sarake
Voit pudottaa sarakkeita käyttämällä 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 |
ketju
Voit yhdistää kaksi DataFrame-kehystä Pandasissa. Voit käyttää pd.concat()
Ensinnäkin sinun on luotava kaksi DataFrame-kehystä. Toistaiseksi hyvin, olet jo perehtynyt tietokehysten luomiseen
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])
Lopuksi ketjutat kaksi DataFrame-kehystä
df_concat = pd.concat([df1,df2]) df_concat
Ikä | nimi | |
---|---|---|
0 | 25 | Johannes |
1 | 30 | Seppä |
2 | 50 | Paavali |
3 | 26 | Aatami |
4 | 11 | Seppä |
Drop_duplicates
Jos tietojoukko voi sisältää päällekkäisiä tietoja, "drop_duplicates" on helppo sulkea pois päällekkäiset rivit. Voit nähdä, että "df_concat" sisältää kaksoishavainnon, "Smith" esiintyy kahdesti sarakkeessa "name".
df_concat.drop_duplicates('name')
Ikä | nimi | |
---|---|---|
0 | 25 | Johannes |
1 | 30 | Seppä |
2 | 50 | Paavali |
3 | 26 | Aatami |
Lajittele arvot
Voit lajitella arvon lajitteluarvoilla
df_concat.sort_values('Age')
Ikä | nimi | |
---|---|---|
4 | 11 | Seppä |
0 | 25 | Johannes |
3 | 26 | Aatami |
1 | 30 | Seppä |
2 | 50 | Paavali |
Nimeä uudelleen: indeksin muutos
Voit nimetä uudelleen sarakkeen Pandasissa uudelleennimeämistoiminnolla. Ensimmäinen arvo on nykyisen sarakkeen nimi ja toinen arvo on uuden sarakkeen nimi.
df_concat.rename(columns={"name": "Surname", "Age": "Age_ppl"})
Age_ppl | Sukunimi | |
---|---|---|
0 | 25 | Johannes |
1 | 30 | Seppä |
2 | 50 | Paavali |
3 | 26 | Aatami |
4 | 11 | Seppä |
Yhteenveto
Alla on yhteenveto hyödyllisimmistä menetelmästä datatieteen pandoille
tuo tietoja | Lue_csv |
---|---|
luoda sarjoja | Sarjat |
Luo tietokehys | Datakehys |
Luo ajanjakso | DATE_RANGE |
palauta pää | pää |
paluu häntää | pyrstö |
Kuvata | kuvata |
leikkaa nimellä | datanimi['sarakkeen nimi'] |
Leikkaa rivejä käyttäen | data_name[0:5] |