Python | Pandas.apply()
Pandas.apply leidžia vartotojams perduoti funkciją ir taikyti ją kiekvienai Pandas serijos vertei. Tai yra didžiulis pandų bibliotekos patobulinimas, nes ši funkcija padeda atskirti duomenis pagal reikalingas sąlygas, dėl kurių jie efektyviai naudojami duomenų moksle ir mašinų mokymesi.
Montavimas:
Importuokite Pandas modulį į python failą naudodami šias terminalo komandas:
pip install pandas
Norint nuskaityti csv failą ir suspausti jį į pandas seriją, naudojamos šios komandos:
import pandas as pd s = pd.read_csv('stock.csv', squeeze=True) Sintaksė:
s.apply(func, convert_dtype=True, args=())
Parametrai:
funkcija: .apply užima funkciją ir pritaiko ją visoms pandų serijos reikšmėms. convert_dtype: Konvertuokite dtype pagal funkcijos operaciją. args=(): Papildomi argumentai, kuriuos reikia perduoti funkcijai, o ne serijoms. Grąžinimo tipas: Pandos serija po pritaikytos funkcijos / operacijos.
1 pavyzdys:
Toliau pateiktame pavyzdyje perduodama funkcija ir tikrinama kiekvieno elemento vertė nuosekliai ir atitinkamai grąžinama žema, normali arba aukšta.
PYTHON3
import> pandas as pd> # reading csv> s> => pd.read_csv('stock.csv', squeeze> => True> )> # defining function to check price> def> fun(num):> > if> num <> 200> :> > return> 'Low'> > elif> num>>> > else> :> > return> 'High'> # passing function to apply and storing returned series in new> new> => s.> apply> (fun)> # printing first 3 element> print> (new.head(> 3> ))> # printing elements somewhere near the middle of series> print> (new[> 1400> ], new[> 1500> ], new[> 1600> ])> # printing last 3 elements> print> (new.tail(> 3> ))> |
Išvestis:
2 pavyzdys:
Toliau pateiktame pavyzdyje laikina anoniminė funkcija yra sukurta .apply naudojant lambda. Ji prideda 5 prie kiekvienos serijos vertės ir grąžina naują seriją.
PYTHON3
import> pandas as pd> s> => pd.read_csv('stock.csv', squeeze> => True> )> # adding 5 to each value> new> => s.> apply> (> lambda> num : num> +> 5> )> # printing first 5 elements of old and new series> print> (s.head(),> '
'> , new.head())> # printing last 5 elements of old and new series> print> (> '
'> , s.tail(),> '
'> , new.tail())> |
Išvestis:
0 50.12 1 54.10 2 54.65 3 52.38 4 52.95 Name: Stock Price, dtype: float64 0 55.12 1 59.10 2 59.65 3 57.38 4 57.95 Name: Stock Price, dtype: float64 3007 772.88 3008 771.07 3009 773.18 3010 771.61 3011 782.22 Name: Stock Price, dtype: float64 3007 777.88 3008 776.07 3009 778.18 3010 776.61 3011 787.22 Name: Stock Price, dtype: float64
Kaip pastebėta, naujos vertės = senos vertės + 5