0Pricing
Pandas & NumPy Academy · Pelajaran

Memilih Kolom dan Baris

Pilih satu atau beberapa kolom dengan notasi kurung siku, lalu ambil baris berdasarkan label dan posisi menggunakan .loc dan .iloc

Memilih Kolom dan Baris adalah pelajaran Pandas & NumPy Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Pandas & NumPy Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.

Memilih Satu Kolom

Akses satu kolom berdasarkan nama menggunakan notasi kurung siku df['col'], yang mengembalikan sebuah Series. Anda juga dapat menggunakan notasi titik df.col ketika nama kolom merupakan pengenal Python yang valid dan tidak mengandung spasi. Notasi kurung siku selalu aman; notasi titik gagal untuk nama yang sama dengan metode DataFrame seperti count atau mean.

import pandas as pd

df = pd.DataFrame({'name': ['Alice', 'Bob'], 'score': [90, 75]})
print(df['name'])     # Series
print(type(df['name']))  # pandas.core.series.Series

Memilih Beberapa Kolom

Untuk memilih beberapa kolom, berikan list berisi nama kolom di dalam kurung siku: df[['col1', 'col2']]. Perhatikan penggunaan kurung siku ganda—pasangan luar adalah operator pengindeksan, sedangkan pasangan dalam membuat list Python. Hasilnya adalah DataFrame, bukan Series. Cara ini umum digunakan untuk mengambil matriks fitur bagi pembelajaran mesin.

import pandas as pd

df = pd.DataFrame({'a': [1,2], 'b': [3,4], 'c': [5,6]})
subset = df[['a', 'c']]
print(type(subset))      # pandas.core.frame.DataFrame
print(subset)

.loc untuk Memilih Baris dan Kolom

df.loc[row_label, col_label] memilih data berdasarkan label. Berikan satu label, daftar label, atau potongan untuk baris dan kolom. df.loc[:, 'score'] memilih semua baris pada kolom 'score'. df.loc['r1':'r3', ['a', 'b']] memilih baris r1 hingga r3 (termasuk keduanya) pada kolom a dan b.

import pandas as pd

df = pd.DataFrame({'x': [10,20,30], 'y': [40,50,60]},
                  index=['r1', 'r2', 'r3'])
print(df.loc['r2', 'x'])       # 20
print(df.loc['r1':'r2', 'y'])  # r1:40  r2:50

.iloc untuk Memilih Berdasarkan Posisi

df.iloc[row_pos, col_pos] memilih berdasarkan posisi bilangan bulat tanpa memperhatikan label. Kedua argumen mengikuti konvensi potongan Python dengan batas akhir yang tidak disertakan. df.iloc[:, 0] memilih kolom pertama sebagai Series. df.iloc[0:2, 1:3] memilih sub-DataFrame persegi panjang berukuran 2×2 dari sudut kiri atas.

import pandas as pd

df = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6], 'c': [7,8,9]})
print(df.iloc[1, 2])        # 8  -- row 1, col 2
print(df.iloc[0:2, 0:2])   # top-left 2x2 sub-table

Pemilihan Baris Boolean

Berikan boolean Series (dengan indeks yang sama seperti DataFrame) kepada .loc untuk memfilter baris. Buat boolean Series tersebut dari kondisi kolom. Anda dapat menggabungkan kondisi dengan & dan |. Ini adalah pola pemfilteran standar dalam analisis data Pandas dan jauh lebih ekspresif daripada klausa SQL WHERE untuk kondisi kompleks yang melibatkan banyak kolom.

import pandas as pd

df = pd.DataFrame({'name': ['A','B','C','D'], 'score': [80,55,92,71]})
high = df.loc[df['score'] >= 70]
print(high)
#   name  score
# 0    A     80
# 2    C     92
# 3    D     71

Kondisi Pemfilteran Gabungan

Setiap kondisi harus berada di dalam tanda kurung dan digabungkan dengan & (AND) atau | (OR). Penggunaan kata kunci Python and/or pada Series akan menimbulkan error. Untuk menegasikan kondisi, gunakan ~ (tilde), bukan not. Selalu uji kondisi secara terpisah sebelum menggabungkannya agar sumber hasil yang tidak terduga dapat diisolasi.

import pandas as pd

df = pd.DataFrame({'name': ['A','B','C','D'],
                   'score': [80, 55, 92, 71],
                   'dept': ['Eng', 'HR', 'Eng', 'HR']})
filtered = df.loc[(df['score'] >= 70) & (df['dept'] == 'Eng')]
print(filtered)

Memilih Baris Berdasarkan Posisi Bilangan Bulat

df.iloc[n] mengembalikan baris ke-n sebagai Series. df.iloc[n:m] mengembalikan baris n hingga m-1 sebagai DataFrame. df.iloc[[0, 2, 4]] memilih baris tertentu berdasarkan posisi menggunakan pengindeksan khusus. Cara ini setara dengan pemilihan baris array NumPy dan sering digunakan dalam pembagian data pelatihan/pengujian sebelum menerapkan model pembelajaran mesin.

import pandas as pd

df = pd.DataFrame({'a': range(5), 'b': range(5, 10)})
print(df.iloc[0])         # first row as Series
print(df.iloc[1:3])       # rows 1 and 2 as DataFrame
print(df.iloc[[0, 4]])    # first and last row

Menggabungkan Pemilihan Baris dan Kolom

Baik .loc maupun .iloc menerima dua argumen: df.loc[row_selector, col_selector]. Dengan demikian, Anda dapat memilih bagian persegi panjang secara tepat dalam satu ekspresi. Tanda titik dua : saja memilih semua baris atau semua kolom. Pola ini penting untuk mengambil matriks fitur dengan kolom tertentu hanya untuk baris pelatihan dari suatu kumpulan data.

import pandas as pd

df = pd.DataFrame({'x': [1,2,3], 'y': [4,5,6], 'z': [7,8,9]})
# Filter rows where x > 1, keep columns y and z
result = df.loc[df['x'] > 1, ['y', 'z']]
print(result)
#    y  z
# 1  5  8
# 2  6  9

Memilih Satu Baris dengan .loc

Ketika Anda memberikan satu label skalar kepada df.loc[label], hasilnya adalah Series dengan indeks berupa nama kolom. Ini berguna untuk memeriksa catatan tertentu. Untuk mendapatkan DataFrame satu baris, masukkan label ke dalam list: df.loc[[label]]. Perbedaan ini penting ketika hasil diberikan kepada fungsi yang mengharapkan DataFrame.

import pandas as pd

df = pd.DataFrame({'name': ['A','B'], 'score': [80, 90]},
                  index=['r1', 'r2'])
print(type(df.loc['r1']))    # Series
print(type(df.loc[['r1']])) # DataFrame

at dan iat untuk Akses Skalar Cepat

df.at[row_label, col_name] dan df.iat[row_pos, col_pos] mengambil atau menetapkan satu nilai skalar dengan beban kerja yang lebih rendah daripada .loc/.iloc. Keduanya dirancang untuk perulangan yang memperbarui sel satu per satu. Dalam kode produksi, selalu utamakan operasi tervectorisasi daripada pembaruan sel satu per satu, tetapi gunakan at/iat ketika Anda benar-benar perlu melakukan iterasi.

import pandas as pd

df = pd.DataFrame({'x': [1, 2, 3], 'y': [4, 5, 6]},
                  index=['a', 'b', 'c'])
print(df.at['b', 'y'])    # 5
print(df.iat[2, 0])       # 3

Peringatan Pengindeksan Berantai

Pengindeksan berantai seperti df['col'][condition] atau df[mask]['col'] = val dapat menghasilkan SettingWithCopyWarning karena Pandas mungkin bekerja pada salinan, bukan data asli. Selalu gunakan satu ekspresi .loc untuk setiap modifikasi: df.loc[mask, 'col'] = val. Inilah pola yang benar dan bebas peringatan.

import pandas as pd

df = pd.DataFrame({'score': [80, 55, 92]})
# WRONG - may not modify original:
# df[df['score'] > 60]['score'] = 100

# CORRECT:
df.loc[df['score'] > 60, 'score'] = 100
print(df)

Pemeriksaan Cepat

Uji pemahaman Anda tentang pemilihan kolom dan baris dari pelajaran ini.

Ringkasan Pelajaran

Dalam pelajaran ini Anda telah mempelajari: .loc memilih baris dan kolom berdasarkan label dengan batas akhir potongan yang disertakan, .iloc memilih berdasarkan posisi bilangan bulat dengan batas akhir yang tidak disertakan seperti potongan Python, dan kondisi boolean yang diterapkan melalui .loc memfilter baris tanpa masalah SettingWithCopyWarning yang dapat muncul pada pengindeksan berantai. Selanjutnya kita menambahkan kolom hasil perhitungan, mengganti nama kolom yang ada, dan menghapus kolom yang tidak diperlukan dengan drop().

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Memilih Kolom dan Baris” gratis?

Ya — teks lengkap “Memilih Kolom dan Baris” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Pandas & NumPy Academy, upgrade ke CoddyKit PRO. Kursus Pandas & NumPy Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Memilih Kolom dan Baris”?

Pilih satu atau beberapa kolom dengan notasi kurung siku, lalu ambil baris berdasarkan label dan posisi menggunakan .loc dan .iloc Kamu berlatih Pandas & NumPy Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Pandas & NumPy Academy?

Tidak diperlukan pengalaman sebelumnya. Pandas & NumPy Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Memilih Kolom dan Baris” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Pandas & NumPy Academy ini?

Ya. Setiap pelajaran Pandas & NumPy Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membuat DataFrames
  2. Memilih Kolom dan Baris
  3. Menambahkan dan Menghapus Kolom
  4. Pemeriksaan Dasar DataFrame
← Kembali ke Pandas & NumPy Academy