Topik ini menjelaskan fungsi jendela yang didukung oleh DataFrame API.
Contoh penggunaan
Gunakan fungsi jendela untuk mengelompokkan dataset iris berdasarkan kolom nama, mengembalikan objek DataFrameGroupBy bernama
grouped. Operasi selanjutnya dilakukan secara independen pada setiap grup.CatatanUntuk informasi lebih lanjut tentang sumber dataset iris, lihat Gunakan DataFrame untuk Memproses Data.
iris = DataFrame(o.get_table('pyodps_iris')) grouped = iris.groupby('name') print(grouped.mutate(grouped.sepallength.cumsum(), grouped.sort('sepallength').row_number()).head(10))Hasil berikut dikembalikan:
name sepallength_sum row_number 0 Iris-setosa 250.3 1 1 Iris-setosa 250.3 2 2 Iris-setosa 250.3 3 3 Iris-setosa 250.3 4 4 Iris-setosa 250.3 5 5 Iris-setosa 250.3 6 6 Iris-setosa 250.3 7 7 Iris-setosa 250.3 8 8 Iris-setosa 250.3 9 9 Iris-setosa 250.3 10
Gunakan fungsi jendela untuk memilih kolom.
iris = DataFrame(o.get_table('pyodps_iris')) print(iris['name', 'sepallength', iris.groupby('name').sort('sepallength').sepallength.cumcount()].head(5))Hasil berikut dikembalikan:
name sepallength sepallength_count 0 Iris-setosa 4.3 1 1 Iris-setosa 4.4 2 2 Iris-setosa 4.4 3 3 Iris-setosa 4.4 4 4 Iris-setosa 4.5 5Gunakan fungsi jendela untuk mengumpulkan data berdasarkan skalar. Metode pemrosesan sama dengan pengumpulan berbasis grup.
from odps.df import Scalar iris = DataFrame(o.get_table('pyodps_iris')) iris.groupby(Scalar(1)).sort('sepallength').sepallength.cumcount()
Pengenalan fungsi
Tabel berikut mencantumkan fungsi jendela yang didukung oleh DataFrame API.
Fungsi jendela | Deskripsi |
cumsum | Menghitung jumlah kumulatif. |
cummean | Menghitung rata-rata kumulatif. |
cummedian | Menghitung median kumulatif. |
cumstd | Menghitung standar deviasi kumulatif. |
cummax | Menghitung maksimum kumulatif. |
cummin | Menghitung minimum kumulatif. |
cumcount | Menghitung jumlah kumulatif. |
lag | Mengambil nilai dari baris pada offset tertentu yang mendahului baris saat ini. Sistem menentukan nomor baris untuk mengambil nilai berdasarkan rumus berikut: Nomor baris saat ini - Nilai offset. |
lead | Mengambil nilai dari baris pada offset tertentu yang mengikuti baris saat ini. Sistem menentukan nomor baris untuk mengambil nilai berdasarkan rumus berikut: Nomor baris saat ini + Nilai offset. |
rank | Menghitung peringkat baris dalam grup yang diurutkan. |
dense_rank | Menghitung peringkat padat baris dalam grup yang diurutkan. |
percent_rank | Menghitung peringkat relatif baris dalam grup yang diurutkan. |
row_number | Menghitung nomor baris. Nomor baris dimulai dari 1. |
qcut | Membagi sekelompok data menjadi N bin berdasarkan urutan data dan mengembalikan nomor bin yang berisi data saat ini. Jika data tidak terdistribusi merata di bin, lebih banyak data akan didistribusikan ke bin pertama secara default. |
nth_value | Mengambil nilai ke-N dalam grup. |
cume_dist | Menghitung proporsi baris yang nilainya tidak lebih besar dari nilai saat ini terhadap semua baris dalam grup. |
Deskripsi parameter
Fungsi jendela
rank,dense_rank,percent_rank, danrow_numbermendukung parameter berikut.Parameter
Deskripsi
sort
Kata kunci yang digunakan untuk mengurutkan baris. Parameter ini adalah string kosong secara default.
ascending
Menentukan apakah akan mengurutkan baris dalam urutan menaik. Parameter ini diatur ke True secara default.
Fungsi jendela
lagdanleadmendukung parameter berikut selain parameter yang didukung oleh fungsirank.Parameter
Deskripsi
offset
Jumlah baris antara baris saat ini dan baris tempat Anda ingin mengambil data.
default
Nilai yang dikembalikan jika baris pada offset yang ditentukan tidak ada.
Fungsi jendela
cumsum,cummax,cummin,cummean,cummedian,cumcount, dancumstdmendukung parameter berikut selain parameter yang didukung oleh fungsirank.Parameter
Deskripsi
unique
Menentukan apakah akan mengaktifkan deduplikasi data. Parameter ini diatur ke False secara default.
preceding
Awal dari sebuah jendela.
following
Akhir dari sebuah jendela.