logo

Python | Pandas.apply()

Pandas.apply omogoča uporabnikom, da posredujejo funkcijo in jo uporabijo za vsako posamezno vrednost serije Pandas. To je velik napredek za knjižnico pandas, saj ta funkcija pomaga ločevati podatke glede na zahtevane pogoje, zaradi česar se učinkovito uporabljajo v podatkovni znanosti in strojnem učenju.

Namestitev:



Uvozite modul Pandas v datoteko python z naslednjimi ukazi na terminalu:

pip install pandas>

Za branje datoteke csv in njeno stiskanje v serijo pandas se uporabljajo naslednji ukazi:

import pandas as pd s = pd.read_csv('stock.csv', squeeze=True)>

Sintaksa:



s.apply(func, convert_dtype=True, args=())>

Parametri:

funkcija: .apply prevzame funkcijo in jo uporabi za vse vrednosti serije pand. convert_dtype: Pretvorite dtype glede na delovanje funkcije. args=(): Dodatni argumenti za posredovanje funkciji namesto serije. Vrsta vračila: Serija Pandas po uporabljeni funkciji/delovanju.

Primer #1:



Naslednji primer posreduje funkcijo in preveri vrednost vsakega elementa v nizu ter ustrezno vrne nizko, normalno ali visoko.

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>>=> 200> and> num<>400>:> >return> 'Normal'> >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>))>

java izboljšana zanka
>

>

Izhod:

Primer #2:

V naslednjem primeru je začasna anonimna funkcija narejena v samem .apply z uporabo lambda. Vsaki vrednosti v seriji doda 5 in vrne novo serijo.

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

>

>

Izhod:

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>

Kot je bilo ugotovljeno, nove vrednosti = stare vrednosti + 5