Tujuan utama dari operator pengindeksan DataFrame, []
adalah untuk memilih kolom.
Ketika operator pengindeksan melewati string atau integer, ia berusaha untuk menemukan kolom dengan nama tertentu dan mengembalikannya sebagai sebuah Seri.
Jadi, dalam pertanyaan di atas: df[2]
mencari nama kolom yang cocok dengan nilai integer 2
. Kolom ini tidak ada dan KeyError
dinaikkan.
Operator pengindeksan DataFrame sepenuhnya mengubah perilaku untuk memilih baris ketika notasi slice digunakan
Anehnya, ketika diberikan sepotong, operator pengindeksan DataFrame memilih baris dan dapat melakukannya dengan lokasi integer atau dengan label indeks.
df[2:3]
Ini akan mengiris mulai dari baris dengan lokasi integer 2 hingga 3, eksklusif dari elemen terakhir. Jadi, hanya satu baris. Berikut ini memilih baris yang dimulai pada lokasi integer 6 hingga tetapi tidak termasuk 20 pada setiap baris ketiga.
df[6:20:3]
Anda juga bisa menggunakan irisan yang terdiri dari label string jika indeks DataFrame Anda memiliki string di dalamnya. Untuk detail lebih lanjut, lihat solusi ini di .iloc vs .loc .
Saya hampir tidak pernah menggunakan notasi slice ini dengan operator pengindeksan karena tidak eksplisit dan jarang digunakan. Saat mengiris baris, pertahankan .loc/.iloc
.
df.ix[2]
tidak bekerja - setidaknya tidak dipandas version '0.19.2'
[]
, lihat jawaban ini di bawah . Juga TIDAK PERNAH MENGGUNAKAN.ix
, itu ditinggalkan