Python Pandas - Aplikasi Fungsi
Untuk menerapkan fungsi Anda sendiri atau pustaka lain ke objek Pandas, Anda harus mengetahui tiga metode penting. Metodenya telah dibahas di bawah ini. Metode yang tepat untuk digunakan bergantung pada apakah fungsi Anda mengharapkan untuk beroperasi pada seluruh DataFrame, baris atau kolom-bijaksana, atau elemen bijaksana.
- Tabel Aplikasi Fungsi bijaksana: pipa ()
- Aplikasi Fungsi Bijak Baris atau Kolom: apply ()
- Aplikasi Fungsi yang bijaksana dari elemen: applymap ()
Aplikasi Fungsi Tabel-bijaksana
Operasi kustom dapat dilakukan dengan meneruskan fungsi dan jumlah parameter yang sesuai sebagai argumen pipa. Jadi, operasi dilakukan di seluruh DataFrame.
Misalnya, tambahkan nilai 2 ke semua elemen di DataFrame. Kemudian,
fungsi penambah
Fungsi penambah menambahkan dua nilai numerik sebagai parameter dan mengembalikan jumlahnya.
def adder(ele1,ele2):
return ele1+ele2
Kami sekarang akan menggunakan fungsi kustom untuk melakukan operasi pada DataFrame.
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.pipe(adder,2)
Mari kita lihat program lengkapnya -
import pandas as pd
import numpy as np
def adder(ele1,ele2):
return ele1+ele2
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.pipe(adder,2)
print df.apply(np.mean)
Nya output adalah sebagai berikut -
col1 col2 col3
0 2.176704 2.219691 1.509360
1 2.222378 2.422167 3.953921
2 2.241096 1.135424 2.696432
3 2.355763 0.376672 1.182570
4 2.308743 2.714767 2.130288
Aplikasi Fungsi Bijak Baris atau Kolom
Fungsi arbitrer dapat diterapkan di sepanjang sumbu DataFrame atau Panel menggunakan apply()metode, yang, seperti metode statistik deskriptif, mengambil argumen sumbu opsional. Secara default, operasi melakukan kolom bijaksana, mengambil setiap kolom sebagai array-like.
Contoh 1
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.apply(np.mean)
print df.apply(np.mean)
Nya output adalah sebagai berikut -
col1 -0.288022
col2 1.044839
col3 -0.187009
dtype: float64
Dengan melewati axis parameter, operasi dapat dilakukan dengan bijaksana.
Contoh 2
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.apply(np.mean,axis=1)
print df.apply(np.mean)
Nya output adalah sebagai berikut -
col1 0.034093
col2 -0.152672
col3 -0.229728
dtype: float64
Contoh 3
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.apply(lambda x: x.max() - x.min())
print df.apply(np.mean)
Nya output adalah sebagai berikut -
col1 -0.167413
col2 -0.370495
col3 -0.707631
dtype: float64
Aplikasi Fungsi Elemen Bijak
Tidak semua fungsi dapat di-vektorisasi (baik array NumPy yang mengembalikan array lain maupun nilai apa pun), metodenya applymap() di DataFrame dan analogously map() on Series menerima fungsi Python apa pun yang mengambil satu nilai dan mengembalikan satu nilai.
Contoh 1
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
# My custom function
df['col1'].map(lambda x:x*100)
print df.apply(np.mean)
Nya output adalah sebagai berikut -
col1 0.480742
col2 0.454185
col3 0.266563
dtype: float64
Contoh 2
import pandas as pd
import numpy as np
# My custom function
df = pd.DataFrame(np.random.randn(5,3),columns=['col1','col2','col3'])
df.applymap(lambda x:x*100)
print df.apply(np.mean)
Nya output adalah sebagai berikut -
col1 0.395263
col2 0.204418
col3 -0.795188
dtype: float64