SequenceExpr merepresentasikan kolom dalam dataset dua dimensi. Anda tidak dapat membuat objek SequenceExpr secara manual, melainkan harus mengambilnya dari objek koleksi.
Prasyarat
Sebelum mengambil kolom, pastikan persyaratan berikut telah dipenuhi:
Tabel contoh bernama pyodps_iris telah disiapkan. Untuk informasi lebih lanjut, lihat Pemrosesan Data DataFrame.
Objek DataFrame telah dibuat. Untuk informasi lebih lanjut, lihat Buat Objek DataFrame.
Ambil kolom
Gunakan
collection.nama_kolomuntuk mengambil kolom. Contoh perintah:print(iris.sepallength.head(5))Hasil berikut dikembalikan:
sepallength 0 4.9 1 4.7 2 4.6 3 5.0 4 5.4Jika nama kolom disimpan dalam variabel string, gunakan
df[nama_kolom]untuk mengambil kolom. Contoh perintah:print(iris['sepallength'].head(5))Hasil berikut dikembalikan:
sepallength 0 4.9 1 4.7 2 4.6 3 5.0 4 5.4
Tipe kolom
DataFrame memiliki sistem tipe tersendiri. Saat tabel diinisialisasi, tipe data MaxCompute dikonversi ke tipe data terkait dari DataFrame. Hal ini memungkinkan dukungan untuk berbagai backend komputasi. Backend eksekusi DataFrame mendukung SQL MaxCompute, Pandas, serta database seperti MySQL dan Postgres.
Tabel berikut menjelaskan pemetaan antara tipe data DataFrame dan tipe data MaxCompute.
Tipe data MaxCompute | Tipe data DataFrame |
BIGINT | INT64 |
DOUBLE | FLOAT64 |
STRING | STRING |
DATETIME | DATETIME |
BOOLEAN | BOOLEAN |
DECIMAL | DECIMAL |
ARRAY<VALUE_TYPE> | LIST<VALUE_TYPE> |
MAP<KEY_TYPE, VALUE_TYPE> | DICT<KEY_TYPE, VALUE_TYPE> |
Jika Anda menentukan | |
TINYINT | INT8 |
SMALLINT | INT16 |
INT | INT32 |
FLOAT | FLOAT32 |
Perhatikan poin-poin berikut:
Jika bidang dalam tabel bertipe LIST atau DICT, Anda harus menentukan tipe elemen dalam tabel. Jika tidak, kesalahan akan terjadi.
DataFrame tidak mendukung tipe TIMESTAMP dan STRUCT yang diperkenalkan di MaxCompute V2.0.
Anda dapat memperoleh tipe data menggunakan
sequence.dtypedalam objek urutan. Contoh kode:print(iris.sepallength.dtype)Hasil berikut dikembalikan:
FLOAT64Anda dapat menggunakan metode
astypeuntuk mengubah tipe kolom. Metode ini memerlukan tipe sebagai nilai input dan mengembalikan objek urutan yang telah dikonversi. Contoh kode:print(iris.sepallength.astype('int').head(5))Hasil berikut dikembalikan:
sepallength 0 4 1 4 2 4 3 5 4 5
Nama kolom
Dalam komputasi DataFrame, objek urutan harus memiliki nama kolom. Dalam sebagian besar kasus, DataFrame secara otomatis memberikan nama untuk setiap objek urutan. Contoh kode:
print(iris.groupby('name').sepalwidth.max().head(5))Hasil berikut dikembalikan:
sepalwidth_max 0 4.4 1 3.4 2 3.8CatatanDalam contoh sebelumnya,
sepalwidthdinamaisepalwidth_maxsetelah nilai maksimum sepalwidth diperoleh. Sebagai contoh, jika Anda menambahkan bidang skalar ke objek urutan tertentu, hasil yang dikembalikan secara otomatis diberi nama sesuai dengan nama objek urutan. Dalam kasus lain, Anda perlu menamai objek urutan secara manual.Objek urutan menyediakan metode
renameuntuk menamai ulang kolom. Contoh kode:print(iris.sepalwidth.rename('sepal_width').head(5))Hasil berikut dikembalikan:
sepal_width 0 3.0 1 3.2 2 3.1 3 3.6 4 3.9
Kalkulasi kolom
Anda dapat melakukan operasi pada urutan untuk mendapatkan urutan baru. Operasi ini mirip dengan kalkulasi variabel Python sederhana. Untuk kolom numerik, operasi aritmatika didukung. Untuk kolom string, hanya penggabungan string yang didukung. Contoh kode:
print((iris.sepallength + 5).head(5))Hasil berikut dikembalikan:
sepallength 0 9.9 1 9.7 2 9.6 3 10.0 4 10.4Jika dua kolom digunakan untuk kalkulasi, PyODPS tidak dapat menentukan nama kolom yang ditampilkan. Anda harus menentukan nama kolom secara manual. Contoh kode:
print((iris.sepallength + iris.sepalwidth).rename('sum_sepal').head(5))Hasil berikut dikembalikan:
sum_sepal 0 7.9 1 7.9 2 7.7 3 8.6 4 9.3CatatanUntuk informasi lebih lanjut tentang kalkulasi kolom, lihat Operasi Kolom.