Dalam artikel ini, saya telah mengumpulkan pertanyaan wawancara Pandas yang paling sering ditanyakan beserta jawabannya. Beberapa pertanyaan berasal dari pengalaman wawancara saya sendiri di Target untuk peran data scientist. Mari kita mulai!
Pertanyaan Wawancara Dasar tentang Pandas
Mari lihat beberapa pertanyaan dasar wawancara tentang pandas. Pewawancara yang baik mungkin memulai dengan pertanyaan sederhana ini untuk membuat Anda nyaman di awal, sementara yang lain mungkin menanyakannya untuk menilai pemahaman dasar Anda tentang library tersebut.
1. Apa itu pandas dalam Python?
pandas adalah library Python open-source dengan metode bawaan yang kuat untuk membersihkan, menganalisis, dan memanipulasi dataset secara efisien. Dikembangkan oleh Wes McKinney pada tahun 2008, paket yang tangguh ini dapat dengan mudah dipadukan dengan berbagai modul data science lainnya di Python.
Meskipun awalnya dibangun di atas NumPy, pandas modern (v2.0+) juga mendukung backend PyArrow. Ini memungkinkan operasi yang jauh lebih cepat, tipe data string sesungguhnya, dan penanganan nilai hilang (tipe nullable) yang lebih baik dibanding arsitektur lama yang hanya NumPy.
2. Bagaimana cara cepat mengakses 5 baris teratas dan 5 baris terakhir dari DataFrame pandas?
Metode head() di pandas digunakan untuk mengakses 5 baris pertama dari sebuah DataFrame, dan metode tail() digunakan untuk mengakses 5 baris terakhir.
Untuk mengakses 5 baris teratas:dataframe_name.head()
Untuk mengakses 5 baris terakhir:dataframe_name.tail()
3. Mengapa DataFrame.shape tidak memiliki tanda kurung?
Dalam pandas, shape adalah atribut, bukan metode. Jadi, Anda harus mengaksesnya tanpa tanda kurung.
DataFrame.shape menghasilkan tuple berisi jumlah baris dan kolom dalam sebuah DataFrame.
4. Apa perbedaan antara Series dan DataFrame?
DataFrame: DataFrame pandas berbentuk tabel dengan banyak baris dan kolom, di mana setiap kolom bisa memiliki tipe data yang berbeda.
Series: Series adalah array satu dimensi berlabel yang dapat menyimpan tipe data apa pun, tetapi semua nilainya harus memiliki tipe data yang sama. Struktur data Series mirip dengan satu kolom pada DataFrame.
Struktur data Series mengonsumsi lebih sedikit memori dibanding DataFrame. Jadi, tugas manipulasi data tertentu lebih cepat di atasnya.
Namun, DataFrame dapat menyimpan dataset yang besar dan kompleks, sedangkan Series hanya dapat menangani data homogen. Jadi, himpunan operasi yang dapat Anda lakukan pada DataFrame jauh lebih banyak daripada pada struktur data Series.
5. Apa itu indeks dalam pandas?
Indeks adalah serangkaian label yang dapat mengidentifikasi setiap baris DataFrame secara unik. Indeks dapat berupa tipe data apa pun (seperti integer, string, hash, dll.).
df.index akan mencetak indeks baris saat ini dari DataFrame df.
Pertanyaan Wawancara Pandas Tingkat Menengah
Pertanyaan-pertanyaan ini akan sedikit lebih menantang, dan Anda lebih mungkin menemukannya dalam peran yang memerlukan pengalaman sebelumnya menggunakan pandas.
6. Apa itu multi-indexing dalam pandas?
Indeks dalam pandas mengidentifikasi setiap baris DataFrame secara unik. Biasanya kita memilih kolom yang dapat mengidentifikasi setiap baris secara unik dan menjadikannya indeks. Namun bagaimana jika Anda tidak memiliki satu kolom pun yang dapat melakukan ini?
Sebagai contoh, Anda memiliki kolom “name”, “age”, “address”, dan “marks” dalam sebuah DataFrame. Masing-masing kolom tersebut mungkin tidak memiliki nilai unik untuk semua baris yang berbeda dan tidak cocok sebagai indeks.
Namun, kolom “name” dan “address” secara bersama-sama mungkin dapat mengidentifikasi setiap baris DataFrame secara unik. Jadi Anda dapat menjadikan kedua kolom tersebut sebagai indeks. DataFrame Anda sekarang memiliki multi-index atau indeks hierarkis.
7. Jelaskan reindexing di pandas. Berikan contoh.
Reindexing digunakan untuk menyesuaikan DataFrame dengan indeks baru. Ini paling sering digunakan untuk mengisi celah yang hilang pada data deret waktu atau memastikan laporan mencakup semua kategori, bahkan yang bernilai nol.
Jika indeks baru berisi label yang tidak ada di DataFrame asli, pandas akan memasukkan NaN (atau nilai isian yang ditentukan) untuk baris-baris tersebut.
Contoh: Bayangkan Anda memiliki data penjualan untuk Q1 dan Q3, tetapi Q2 dan Q4 hilang karena penjualan nol. Plot standar akan terlihat menyesatkan. reindex() mengatasinya dengan memaksa kuartal yang hilang masuk ke DataFrame.
import pandas as pd
# Original data (Note: Q2 and Q4 are missing)
data ={'Quarter':['Q1','Q3'],'Sales':[15000,18000]}
df = pd.read_json(pd.DataFrame(data).to_json())# Simulating loaded data
df = df.set_index('Quarter')# The complete index we REQUIRE for the report
all_quarters =['Q1','Q2','Q3','Q4']# Reindex forces Q2 and Q4 to appear, filling them with 0 instead of NaN
df_full = df.reindex(all_quarters, fill_value=0)Didukung oleh
8. Apa perbedaan antara loc dan iloc?
Baik .loc() maupun .iloc() di pandas digunakan untuk memilih subset DataFrame. Secara praktis, ini banyak digunakan untuk memfilter DataFrame berdasarkan kondisi.
Kita sebaiknya menggunakan .loc() untuk memilih data menggunakan label baris dan kolom yang sebenarnya, sedangkan .iloc() digunakan untuk mengekstrak data berdasarkan indeks bilangan bulat dari baris dan kolom.
9. Tunjukkan dua cara berbeda untuk membuat DataFrame pandas
Dari dictionary:
import pandas as pd
data ={'Name':['John','Cataline','Matt'],'Age':[50,45,30],'City':['Austin','San Francisco','Boston'],'Marks':[70,80,95]}
df = pd.DataFrame(data)Didukung oleh
Dari list of lists:
import pandas as pd
data =[['John',25,'Austin',70],['Cataline',30,'San Francisco',80],['Matt',35,'Boston',90]]
columns =['Name','Age','City','Marks']
df = pd.DataFrame(data, columns=columns)Didukung oleh
10. Bagaimana cara mendapatkan jumlah semua nilai unik dari kolom kategorikal dalam DataFrame?
Fungsi Series.value_counts() mengembalikan jumlah setiap nilai unik dari sebuah series atau kolom.
Contoh:
Kami membuat DataFrame df yang berisi kolom kategorikal bernama Sex, dan menjalankan fungsi .value_counts() untuk melihat jumlah setiap nilai unik di kolom tersebut.
import pandas as pd
data =[['John',50,'Male','Austin',70],['Cataline',45,'Female','San Francisco',80],['Matt',30,'Male','Boston',95]]# Column labels of the DataFrame
columns =['Name','Age','Sex','City','Marks']# Create a DataFrame df
df = pd.DataFrame(data, columns=columns)
df['Sex'].value_counts()Didukung oleh
Jika Anda ingin melihat distribusi persentase alih-alih hitungan mentah, gunakan argumen normalize=True pada .value_counts().
11. Apa itu tipe data category, dan mengapa menggunakannya?
Tipe data category digunakan untuk kolom dengan sejumlah nilai string unik yang terbatas (kardinalitas rendah). Ini menghemat banyak memori dan mempercepat operasi seperti pengurutan dan pengelompokan karena Pandas menyimpan string satu kali dalam lookup table dan menggunakan bilangan bulat ringan untuk kolom data sebenarnya.
Pertanyaan Wawancara Pandas untuk Praktisi Berpengalaman
Mereka yang sudah memiliki latar belakang kuat dalam pandas dan melamar peran yang lebih senior mungkin akan menemui beberapa pertanyaan berikut:
12. Bagaimana Anda mengoptimalkan performa dengan dataset besar di pandas?
Gunakan PyArrow: Muat data dengan engine="pyarrow" dan dtype_backend="pyarrow". Ini lebih cepat dan jauh lebih efisien memori dibanding tipe standar NumPy.
Vektorisasi alih-alih loop: Loop dan iterasi mahal, terutama pada dataset besar. Sebaliknya, gunakan operasi tervektor karena diterapkan pada seluruh kolom sekaligus, sehingga lebih cepat daripada iterasi per baris.
Muat hanya yang Anda perlukan: Gunakan parameter usecols pada read_csv() atau read_parquet() untuk membatasi jumlah data yang dimuat.
Tipe yang efisien memori: Tipe data bawaan pandas tidak efisien memori. Misalnya, nilai integer menggunakan tipe bawaan int64, tetapi jika nilai Anda muat dalam int32, menyesuaikan tipe data ke int32 dapat mengoptimalkan penggunaan memori. Mengonversi string berkardinalitas rendah ke tipe category juga merupakan ide yang baik.
Gunakan agregasi data: Cobalah mengagregasi data dan melakukan operasi statistik karena operasi pada data teragregasi lebih efisien daripada pada seluruh dataset.
Pemrosesan paralel: pandas native bersifat single-threaded. Untuk paralelisme pada satu mesin, solusi yang disarankan adalah menggunakan Polars (yang multi-threaded secara default) atau library seperti Modin yang bertindak sebagai pengganti paralel drop-in untuk pandas.
13. Apa perbedaan antara metode .join() dan .merge() di pandas?
Join: Menggabungkan dua DataFrame berdasarkan indeksnya. Namun, ada argumen opsional on untuk menentukan jika Anda ingin menggabungkan secara eksplisit berdasarkan kolom. Secara default, fungsi ini melakukan left join. Sintaksnya adalah df1.join(df2).
Merge: Fungsi merge() lebih fleksibel, memungkinkan Anda menentukan kolom tempat Anda ingin menggabungkan DataFrame. Secara default menerapkan inner join, tetapi dapat disesuaikan untuk menggunakan tipe join lain seperti left, right, outer, inner, dan cross. Sintaksnya adalah pd.merge(df1, df2, on=”column_names”).
14. Apa itu Timedelta?
Timedelta merepresentasikan durasi, yaitu selisih antara dua tanggal atau waktu, yang diukur dalam satuan seperti hari, jam, menit, dan detik.
15. Metode .append() telah dihapus. Bagaimana sekarang cara menggabungkan DataFrame?
Jika Anda mencoba menggunakan .append() di lingkungan Pandas modern (versi 2.0 atau lebih baru), akan muncul error karena metode tersebut dihapus untuk mendorong praktik pengodean yang lebih efisien.
Sebagai gantinya, Anda sebaiknya mengumpulkan semua dataframe atau baris ke dalam sebuah list, lalu memanggil pd.concat() satu kali:
new_df = pd.concat([df1, df2], ignore_index=True)Didukung oleh
16. Kapan Anda harus menggunakan Polars alih-alih pandas?
Anda sebaiknya mempertimbangkan Polars (library DataFrame berbasis Rust) ketika:
Dataset jauh lebih besar daripada RAM yang tersedia: Polars memiliki lazy evaluation/streaming.
Anda membutuhkan performa multi-threaded: Operasi pandas sebagian besar single-threaded.
Setiap milidetik berarti: Anda membangun pipeline data berkinerja tinggi.
Pertanyaan Wawancara Koding Pandas
Keterampilan praktis sama pentingnya dengan pengetahuan teoretis ketika menghadapi wawancara teknis. Jadi berikut beberapa pertanyaan koding pandas yang perlu Anda ketahui sebelum bertemu pewawancara.
17. Bagaimana cara membaca file Excel menjadi CSV menggunakan pandas?
Pertama, kita harus menggunakan fungsi .read_excel() untuk menarik data Excel ke dalam sebuah variabel. Lalu, cukup terapkan fungsi .to_csv() untuk konversi yang mulus.
Berikut contoh kodenya:
import pandas as pd
#input your excel file path into the read_excel() function.
excel_data = pd.read_excel("/content/sample_data/california_housing_test.xlsx")
excel_data.to_csv("CSV_data.csv", index =None, header=True)Didukung oleh
Catatan: Dalam wawancara modern, sebutkan bahwa mempertahankan tipe data dalam format parquet (dengan .to_parquet() alih-alih .to_csv()) sering kali lebih unggul saat menangani dataset besar.
18. Bagaimana cara mengurutkan DataFrame berdasarkan kolom?
Kita memanggil metode .sort_values() untuk mengurutkan DataFrame berdasarkan satu kolom atau beberapa kolom.
Sintaksnya seperti ini: df.sort_values(by=[“column_names”]), seperti contoh berikut:
import pandas as pd
data =[['John',50,'Male','Austin',70],['Cataline',45,'Female','San Francisco',80],['Matt',30,'Male','Boston',95],['Oliver',35,'Male','New york',65]]# Column labels of the DataFrame
columns =['Name','Age','Sex','City','Marks']# Create a DataFrame df
df = pd.DataFrame(data, columns=columns)# Sort values based on ‘Age’ column
df.sort_values(by=['Age'])
df.head()`Didukung oleh
19. Tunjukkan dua cara berbeda untuk memfilter data
Mari tunjukkan cara memfilter DataFrame berikut:
import pandas as pd
data ={'Name':['John','Cataline','Matt'],'Age':[50,45,30],'City':['Austin','San Francisco','Boston'],'Marks':[70,80,95]}# Create a DataFrame df
df = pd.DataFrame(data)Didukung oleh
Metode 1: Boolean indexing
new_df = df[(df.Name =="John")|(df.Marks >90)]print(new_df)Didukung oleh
Metode 2: Menggunakan metode .query()
df.query('Name == "John" or Marks > 90')print(new_df)Didukung oleh
20. Bagaimana cara melakukan agregasi data (misalnya, mean atau sum)?
Fungsi .groupby() memungkinkan Anda mengagregasi data berdasarkan kolom tertentu dan melakukan operasi pada data yang dikelompokkan. Gabungkan dengan metode .agg() untuk kejelasan yang lebih baik.
Pada kode berikut, data dikelompokkan berdasarkan kolom Name, dan rata-rata Grades dari setiap grup dihitung:
import pandas as pd
# Create a DataFrame
data ={'Name':['John','Matt','John','Matt','Matt','Matt'],'Grades':[10,20,30,15,25,18]}# Create a DataFrame df
df = pd.DataFrame(data)# mean marks of John and Mattprint(df.groupby('Name').agg(
avg_grade=('Grades','mean'),)Didukung oleh
21. Bagaimana Anda dapat membuat kolom baru yang diturunkan dari kolom yang ada?
Ada dua cara untuk membuat kolom baru dari kolom yang sudah ada:
Penugasan langsung: Menetapkan kolom dengan nama baru dari transformasi kolom yang ada: df['Total'] = df['Math'] + df['Science']
Method chaining: Menggunakan fungsi lambda dengan .assign(): df = df.assign(Total=lambda x: x['Math'] + x['Science'])
Method chaining kini menjadi pilihan yang disukai, karena meningkatkan keterbacaan kode dengan menghilangkan kebutuhan akan variabel perantara. Menjadikan seluruh transformasi data Anda sebagai satu pipeline logis akan sangat mengurangi bug, karena Anda tidak lagi berisiko secara tidak sengaja merujuk versi DataFrame yang usang atau salah selama analisis.
Pertanyaan Wawancara Pandas untuk Data Scientist
Sekarang setelah kita membahas semua pertanyaan wawancara umum dan koding untuk pandas, mari lihat pertanyaan wawancara pandas untuk data science.
22. Bagaimana Anda menangani nilai null atau hilang di pandas?
Anda dapat menggunakan salah satu dari tiga metode berikut untuk menangani nilai hilang di pandas:
dropna(): menghapus baris atau kolom yang mengandung nilai hilang dari DataFrame.
fillna(): mengisi nilai hilang dengan nilai tertentu menggunakan fungsi ini.
interpolate(): mengisi nilai hilang dengan nilai interpolasi yang dihitung.
Dengan backendPyArrow, integer kini dapat menyimpan nilai NA tanpa casting ke float, yang menjaga fidelitas data dalam workflow ilmiah.
23. Perbedaan antara metode fillna() dan interpolate()
fillna(): Mengisi dengan nilai statis (misalnya, 0 atau "Unknown"). Forward filling menggunakan argumen method='ffill' di dalam .fillna() sudah deprecated; gunakan .ffill() langsung sebagai gantinya.
interpolate(): Mengisi menggunakan estimasi matematis (linear, polinomial, spline) antar titik. Esensial untuk data deret waktu ketika Anda ingin "menyambungkan titik-titik."
24. Apa itu resampling?
Resampling digunakan untuk mengubah frekuensi pelaporan data deret waktu. Bayangkan Anda memiliki data deret waktu bulanan dan ingin mengonversinya menjadi data mingguan atau tahunan; di sinilah resampling digunakan.
Mengonversi data bulanan ke mingguan atau harian pada dasarnya adalah upsampling. Teknik interpolasi digunakan untuk meningkatkan frekuensi di sini.
Sebaliknya, mengonversi data bulanan menjadi tahunan disebut downsampling, di mana teknik agregasi data diterapkan.
25. Bagaimana Anda melakukan one-hot encoding menggunakan pandas?
Kita melakukan one-hot encoding untuk mengonversi nilai kategorikal menjadi numerik, sehingga dapat digunakan oleh algoritma machine learning.
import pandas as pd
data ={'Name':['John','Cateline','Matt','Oliver'],'ID':[1,22,23,36],'Category':['A','B','A','B']}
df = pd.DataFrame(data)#one hot encoding
new_df = pd.get_dummies(df, columns=['Category'])
new_df.head()Didukung oleh
Untuk produksi, menggunakan Scikit-learnOneHotEncoder adalah opsi yang lebih disukai karena mempertahankan skema.
26. Bagaimana cara membuat line plot di pandas?
Untuk membuat line plot, kita menggunakan fungsi plot di pandas.
import pandas as pd
data ={'units':[1,2,3,4,5],'price':[7,12,8,13,16]}# Create a DataFrame df
df = pd.DataFrame(data)
df.plot(kind='line', x='units', y='price')Didukung oleh
Catatan: Anda kini dapat mengganti backend ke Plotly untuk grafik interaktif: pd.options.plotting.backend = "plotly".
27. Apa metode pandas untuk mendapatkan ringkasan statistik semua kolom dalam DataFrame?
df.describe() mengembalikan statistik seperti mean, nilai persentil, min, max, dan lain-lain, untuk setiap kolom dalam DataFrame.
28. Apa itu rolling mean?
Rolling mean juga disebut sebagai moving average karena idenya adalah menghitung rata-rata titik data untuk jendela tertentu dan menggeser jendela tersebut di seluruh data. Ini akan mengurangi fluktuasi dan menonjolkan tren jangka panjang pada data deret waktu.
Sintaksnya seperti ini: df['column_name'].rolling(window=n).mean()
29. Apa itu SettingWithCopyWarning, dan bagaimana cara memperbaikinya?
Peringatan ini terjadi ketika pandas tidak yakin apakah Anda sedang memodifikasi view atau salinan. Dalam pandas modern (konteks 3.0+), Copy-on-Write (CoW) adalah standar. CoW secara tegas memisahkan view dan copy, memastikan bahwa memodifikasi subset tidak pernah diam-diam mengubah frame asli kecuali diminta secara eksplisit. Ini sebagian besar menghilangkan ambiguitas yang menyebabkan peringatan tersebut.
Untuk memperbaikinya pada versi pandas yang lebih lama, gunakan .loc[] untuk pengindeksan eksplisit atau tetapkan irisan tersebut ke variabel baru sebelum melakukan perubahan untuk memastikan kejelasan dan menghindari perilaku yang tidak diinginkan. Baca lebih lanjut di blog ini: How to Fix SettingWithCopyWarning.
30. Bagaimana Anda memvalidasi skema DataFrame di produksi?
Standar industri adalah menggunakan pandera, sebuah library yang memberlakukan pemeriksaan kualitas data yang ketat saat runtime. pandera memungkinkan Anda mendefinisikan skema yang memvalidasi tipe data kolom dan menerapkan logika statistik, seperti memastikan nilai berada dalam rentang tertentu atau bahwa sebuah kolom bersifat unik.
Anda dapat menggunakan dekoratornya (misalnya, @pa.check_types) untuk secara otomatis memvalidasi input dan output fungsi Anda, mencegah "data kotor" diam-diam merusak pipeline hilir Anda. Ini secara efektif bertindak sebagai unit testing untuk data Anda sendiri.
Mempersiapkan Wawancara
Kemungkinan besar Anda akan ditanya setidaknya beberapa pertanyaan yang paling sering muncul, itulah mengapa ide yang baik untuk menggunakannya saat persiapan. Selain pandas, peran yang berorientasi pada data menuntut banyak keterampilan lain. Berikut daftar periksa untuk sukses dalam keseluruhan proses wawancara:
Memahami persyaratan pekerjaan
Tinjau deskripsi pekerjaan dan tanggung jawabnya, serta pastikan keterampilan dan resume Anda selaras dengan itu. Selain itu, mengetahui tentang perusahaan dan bagaimana peran Anda berdampak pada mereka merupakan nilai tambah.
Koding Python
Pewawancara terlebih dahulu akan memeriksa keterampilan Python Anda sebelum menanyakan tentang library-nya (pandas). Jadi, persiapkan diri dengan keterampilan Python yang kuat.
Untuk peran analis, bahasa Python saja sudah memadai. Namun jika Anda melamar sebagai data scientist atau ML engineer, penting untuk menyelesaikan tantangan koding Python.
Proyek data
Pastikan Anda memiliki beberapa problem data dunia nyata yang telah Anda selesaikan di resume. Untuk yang berpengalaman, Anda dapat membahas proyek-proyek masa lalu Anda. Jika Anda baru di bidang ini, cobalah menyelesaikan beberapa proyek dari Kaggle.
Konsep lanjutan
Di luar dasar-dasar tersebut, pertanyaan tambahan akan bergantung pada perannya.
Untuk analis, pertanyaan bisa berasal dari Excel, dasbor visualisasi data, statistika, dan probabilitas.
Selain itu, pewawancara dapat mendalami topik machine learning dan deep learning jika Anda melamar peran data scientist atau ML engineer.
Harapkan pertanyaan seputar perancangan sistem jika Anda melamar peran yang sangat teknis atau berpengalaman. Tinjau pertanyaan desain yang umum dan latih problem perancangan sistem ML end-to-end.
Kesimpulan
Mendapatkan pekerjaan di industri data sering kali membutuhkan keterampilan Pandas yang kuat. Daftar pertanyaan wawancara teoretis dan praktis di atas seharusnya membantu Anda unggul pada bagian pandas dalam wawancara. Ditambah, tips di bagian akhir memastikan seluruh proses wawancara Anda berjalan lancar.
Anda dapat menggunakan sumber daya berikut untuk membantu mempersiapkan wawancara pandas Anda:
Data Manipulation with pandas: Kursus tingkat pemula yang membahas dasar-dasar pandas, manipulasi data, dan teknik visualisasi menggunakan dataset dunia nyata.
Data Preparation with pandas: Tutorial ini menawarkan keterampilan praktis dalam menangani data hilang dengan pandas, mengajarkan fungsi seperti isnull(), dropna(), dan fillna().
Practicing Coding Interview Questions in Python: Ideal untuk persiapan wawancara koding, kursus ini mencakup struktur data Python, manipulasi string, dan bidang kunci lainnya untuk wawancara data science.
Data Science Interview Preparation: Menyediakan tips persiapan komprehensif untuk berbagai format wawancara dan membahas keterampilan teknis dalam Python, R, SQL, dan lainnya.
Srujana adalah penulis lepas di bidang teknologi dengan gelar sarjana Ilmu Komputer. Menulis tentang berbagai topik, termasuk data science, komputasi awan, pengembangan, pemrograman, keamanan, dan banyak lainnya adalah hal yang alami baginya. Ia menyukai sastra klasik dan menjelajahi destinasi baru.
Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Dalam artikel ini, saya telah mengumpulkan pertanyaan wawancara Pandas yang paling sering ditanyakan beserta jawabannya. Beberapa pertanyaan berasal dari pengalaman wawancara saya sendiri di Target untuk peran data scientist. Mari kita mulai!
Pertanyaan Wawancara Dasar tentang Pandas
Mari lihat beberapa pertanyaan dasar wawancara tentang pandas. Pewawancara yang baik mungkin memulai dengan pertanyaan sederhana ini untuk membuat Anda nyaman di awal, sementara yang lain mungkin menanyakannya untuk menilai pemahaman dasar Anda tentang library tersebut.
1. Apa itu pandas dalam Python?
pandasadalah library Python open-source dengan metode bawaan yang kuat untuk membersihkan, menganalisis, dan memanipulasi dataset secara efisien. Dikembangkan oleh Wes McKinney pada tahun 2008, paket yang tangguh ini dapat dengan mudah dipadukan dengan berbagai modul data science lainnya di Python.Meskipun awalnya dibangun di atas
NumPy,pandasmodern (v2.0+) juga mendukung backend PyArrow. Ini memungkinkan operasi yang jauh lebih cepat, tipe data string sesungguhnya, dan penanganan nilai hilang (tipe nullable) yang lebih baik dibanding arsitektur lama yang hanyaNumPy.2. Bagaimana cara cepat mengakses 5 baris teratas dan 5 baris terakhir dari DataFrame pandas?
Metode
head()dipandasdigunakan untuk mengakses 5 baris pertama dari sebuah DataFrame, dan metodetail()digunakan untuk mengakses 5 baris terakhir.Untuk mengakses 5 baris teratas:
dataframe_name.head()Untuk mengakses 5 baris terakhir:
dataframe_name.tail()3. Mengapa DataFrame.shape tidak memiliki tanda kurung?
Dalam
pandas,shapeadalah atribut, bukan metode. Jadi, Anda harus mengaksesnya tanpa tanda kurung.DataFrame.shapemenghasilkan tuple berisi jumlah baris dan kolom dalam sebuah DataFrame.4. Apa perbedaan antara Series dan DataFrame?
DataFrame: DataFrame
pandasberbentuk tabel dengan banyak baris dan kolom, di mana setiap kolom bisa memiliki tipe data yang berbeda.Series: Series adalah array satu dimensi berlabel yang dapat menyimpan tipe data apa pun, tetapi semua nilainya harus memiliki tipe data yang sama. Struktur data Series mirip dengan satu kolom pada DataFrame.
Struktur data Series mengonsumsi lebih sedikit memori dibanding DataFrame. Jadi, tugas manipulasi data tertentu lebih cepat di atasnya.
Namun, DataFrame dapat menyimpan dataset yang besar dan kompleks, sedangkan Series hanya dapat menangani data homogen. Jadi, himpunan operasi yang dapat Anda lakukan pada DataFrame jauh lebih banyak daripada pada struktur data Series.
5. Apa itu indeks dalam pandas?
Indeks adalah serangkaian label yang dapat mengidentifikasi setiap baris DataFrame secara unik. Indeks dapat berupa tipe data apa pun (seperti integer, string, hash, dll.).
df.indexakan mencetak indeks baris saat ini dari DataFramedf.Pertanyaan Wawancara Pandas Tingkat Menengah
Pertanyaan-pertanyaan ini akan sedikit lebih menantang, dan Anda lebih mungkin menemukannya dalam peran yang memerlukan pengalaman sebelumnya menggunakan pandas.
6. Apa itu multi-indexing dalam pandas?
Indeks dalam
pandasmengidentifikasi setiap baris DataFrame secara unik. Biasanya kita memilih kolom yang dapat mengidentifikasi setiap baris secara unik dan menjadikannya indeks. Namun bagaimana jika Anda tidak memiliki satu kolom pun yang dapat melakukan ini?Sebagai contoh, Anda memiliki kolom “name”, “age”, “address”, dan “marks” dalam sebuah DataFrame. Masing-masing kolom tersebut mungkin tidak memiliki nilai unik untuk semua baris yang berbeda dan tidak cocok sebagai indeks.
Namun, kolom “name” dan “address” secara bersama-sama mungkin dapat mengidentifikasi setiap baris DataFrame secara unik. Jadi Anda dapat menjadikan kedua kolom tersebut sebagai indeks. DataFrame Anda sekarang memiliki multi-index atau indeks hierarkis.
7. Jelaskan reindexing di pandas. Berikan contoh.
Reindexing digunakan untuk menyesuaikan DataFrame dengan indeks baru. Ini paling sering digunakan untuk mengisi celah yang hilang pada data deret waktu atau memastikan laporan mencakup semua kategori, bahkan yang bernilai nol.
Jika indeks baru berisi label yang tidak ada di DataFrame asli,
pandasakan memasukkanNaN(atau nilai isian yang ditentukan) untuk baris-baris tersebut.Contoh: Bayangkan Anda memiliki data penjualan untuk Q1 dan Q3, tetapi Q2 dan Q4 hilang karena penjualan nol. Plot standar akan terlihat menyesatkan.
reindex()mengatasinya dengan memaksa kuartal yang hilang masuk ke DataFrame.8. Apa perbedaan antara loc dan iloc?
Baik
.loc()maupun.iloc()di pandas digunakan untuk memilih subset DataFrame. Secara praktis, ini banyak digunakan untuk memfilter DataFrame berdasarkan kondisi.Kita sebaiknya menggunakan
.loc()untuk memilih data menggunakan label baris dan kolom yang sebenarnya, sedangkan.iloc()digunakan untuk mengekstrak data berdasarkan indeks bilangan bulat dari baris dan kolom.9. Tunjukkan dua cara berbeda untuk membuat DataFrame pandas
Dari dictionary:
Dari list of lists:
10. Bagaimana cara mendapatkan jumlah semua nilai unik dari kolom kategorikal dalam DataFrame?
Fungsi
Series.value_counts()mengembalikan jumlah setiap nilai unik dari sebuah series atau kolom.Contoh:
Kami membuat DataFrame df yang berisi kolom kategorikal bernama
Sex, dan menjalankan fungsi.value_counts()untuk melihat jumlah setiap nilai unik di kolom tersebut.Jika Anda ingin melihat distribusi persentase alih-alih hitungan mentah, gunakan argumen
normalize=Truepada.value_counts().11. Apa itu tipe data category, dan mengapa menggunakannya?
Tipe data
categorydigunakan untuk kolom dengan sejumlah nilai string unik yang terbatas (kardinalitas rendah). Ini menghemat banyak memori dan mempercepat operasi seperti pengurutan dan pengelompokan karena Pandas menyimpan string satu kali dalam lookup table dan menggunakan bilangan bulat ringan untuk kolom data sebenarnya.Pertanyaan Wawancara Pandas untuk Praktisi Berpengalaman
Mereka yang sudah memiliki latar belakang kuat dalam
pandasdan melamar peran yang lebih senior mungkin akan menemui beberapa pertanyaan berikut:12. Bagaimana Anda mengoptimalkan performa dengan dataset besar di pandas?
Gunakan PyArrow: Muat data dengan
engine="pyarrow"dandtype_backend="pyarrow". Ini lebih cepat dan jauh lebih efisien memori dibanding tipe standarNumPy.Vektorisasi alih-alih loop: Loop dan iterasi mahal, terutama pada dataset besar. Sebaliknya, gunakan operasi tervektor karena diterapkan pada seluruh kolom sekaligus, sehingga lebih cepat daripada iterasi per baris.
Muat hanya yang Anda perlukan: Gunakan parameter
usecolspadaread_csv()atauread_parquet()untuk membatasi jumlah data yang dimuat.Tipe yang efisien memori: Tipe data bawaan
pandastidak efisien memori. Misalnya, nilai integer menggunakan tipe bawaanint64, tetapi jika nilai Anda muat dalamint32, menyesuaikan tipe data keint32dapat mengoptimalkan penggunaan memori. Mengonversi string berkardinalitas rendah ke tipecategoryjuga merupakan ide yang baik.Gunakan agregasi data: Cobalah mengagregasi data dan melakukan operasi statistik karena operasi pada data teragregasi lebih efisien daripada pada seluruh dataset.
Pemrosesan paralel:
pandasnative bersifat single-threaded. Untuk paralelisme pada satu mesin, solusi yang disarankan adalah menggunakanPolars(yang multi-threaded secara default) atau library sepertiModinyang bertindak sebagai pengganti paralel drop-in untukpandas.13. Apa perbedaan antara metode .join() dan .merge() di pandas?
Join: Menggabungkan dua DataFrame berdasarkan indeksnya. Namun, ada argumen opsional
onuntuk menentukan jika Anda ingin menggabungkan secara eksplisit berdasarkan kolom. Secara default, fungsi ini melakukan left join. Sintaksnya adalahdf1.join(df2).Merge: Fungsi
merge()lebih fleksibel, memungkinkan Anda menentukan kolom tempat Anda ingin menggabungkan DataFrame. Secara default menerapkan inner join, tetapi dapat disesuaikan untuk menggunakan tipe join lain seperti left, right, outer, inner, dan cross. Sintaksnya adalahpd.merge(df1, df2, on=”column_names”).14. Apa itu Timedelta?
Timedelta merepresentasikan durasi, yaitu selisih antara dua tanggal atau waktu, yang diukur dalam satuan seperti hari, jam, menit, dan detik.
15. Metode .append() telah dihapus. Bagaimana sekarang cara menggabungkan DataFrame?
Jika Anda mencoba menggunakan
.append()di lingkungan Pandas modern (versi 2.0 atau lebih baru), akan muncul error karena metode tersebut dihapus untuk mendorong praktik pengodean yang lebih efisien.Sebagai gantinya, Anda sebaiknya mengumpulkan semua dataframe atau baris ke dalam sebuah list, lalu memanggil
pd.concat()satu kali:16. Kapan Anda harus menggunakan Polars alih-alih pandas?
Anda sebaiknya mempertimbangkan
Polars(library DataFrame berbasis Rust) ketika:Dataset jauh lebih besar daripada RAM yang tersedia:
Polarsmemiliki lazy evaluation/streaming.Anda membutuhkan performa multi-threaded: Operasi
pandassebagian besar single-threaded.Setiap milidetik berarti: Anda membangun pipeline data berkinerja tinggi.
Pertanyaan Wawancara Koding Pandas
Keterampilan praktis sama pentingnya dengan pengetahuan teoretis ketika menghadapi wawancara teknis. Jadi berikut beberapa pertanyaan koding pandas yang perlu Anda ketahui sebelum bertemu pewawancara.
17. Bagaimana cara membaca file Excel menjadi CSV menggunakan pandas?
Pertama, kita harus menggunakan fungsi
.read_excel()untuk menarik data Excel ke dalam sebuah variabel. Lalu, cukup terapkan fungsi.to_csv()untuk konversi yang mulus.Berikut contoh kodenya:
Catatan: Dalam wawancara modern, sebutkan bahwa mempertahankan tipe data dalam format parquet (dengan
.to_parquet()alih-alih.to_csv()) sering kali lebih unggul saat menangani dataset besar.18. Bagaimana cara mengurutkan DataFrame berdasarkan kolom?
Kita memanggil metode
.sort_values()untuk mengurutkan DataFrame berdasarkan satu kolom atau beberapa kolom.Sintaksnya seperti ini:
df.sort_values(by=[“column_names”]), seperti contoh berikut:19. Tunjukkan dua cara berbeda untuk memfilter data
Mari tunjukkan cara memfilter DataFrame berikut:
Metode 1: Boolean indexing
Metode 2: Menggunakan metode
.query()20. Bagaimana cara melakukan agregasi data (misalnya, mean atau sum)?
Fungsi
.groupby()memungkinkan Anda mengagregasi data berdasarkan kolom tertentu dan melakukan operasi pada data yang dikelompokkan. Gabungkan dengan metode.agg()untuk kejelasan yang lebih baik.Pada kode berikut, data dikelompokkan berdasarkan kolom
Name, dan rata-rataGradesdari setiap grup dihitung:21. Bagaimana Anda dapat membuat kolom baru yang diturunkan dari kolom yang ada?
Ada dua cara untuk membuat kolom baru dari kolom yang sudah ada:
Penugasan langsung: Menetapkan kolom dengan nama baru dari transformasi kolom yang ada:
df['Total'] = df['Math'] + df['Science']Method chaining: Menggunakan fungsi lambda dengan
.assign():df = df.assign(Total=lambda x: x['Math'] + x['Science'])Method chaining kini menjadi pilihan yang disukai, karena meningkatkan keterbacaan kode dengan menghilangkan kebutuhan akan variabel perantara. Menjadikan seluruh transformasi data Anda sebagai satu pipeline logis akan sangat mengurangi bug, karena Anda tidak lagi berisiko secara tidak sengaja merujuk versi DataFrame yang usang atau salah selama analisis.
Pertanyaan Wawancara Pandas untuk Data Scientist
Sekarang setelah kita membahas semua pertanyaan wawancara umum dan koding untuk
pandas, mari lihat pertanyaan wawancarapandasuntuk data science.22. Bagaimana Anda menangani nilai null atau hilang di pandas?
Anda dapat menggunakan salah satu dari tiga metode berikut untuk menangani nilai hilang di
pandas:dropna(): menghapus baris atau kolom yang mengandung nilai hilang dari DataFrame.fillna(): mengisi nilai hilang dengan nilai tertentu menggunakan fungsi ini.interpolate(): mengisi nilai hilang dengan nilai interpolasi yang dihitung.Dengan backend PyArrow, integer kini dapat menyimpan nilai
NAtanpa casting kefloat, yang menjaga fidelitas data dalam workflow ilmiah.23. Perbedaan antara metode fillna() dan interpolate()
fillna(): Mengisi dengan nilai statis (misalnya, 0 atau "Unknown"). Forward filling menggunakan argumenmethod='ffill'di dalam.fillna()sudah deprecated; gunakan.ffill()langsung sebagai gantinya.interpolate(): Mengisi menggunakan estimasi matematis (linear, polinomial, spline) antar titik. Esensial untuk data deret waktu ketika Anda ingin "menyambungkan titik-titik."24. Apa itu resampling?
Resampling digunakan untuk mengubah frekuensi pelaporan data deret waktu. Bayangkan Anda memiliki data deret waktu bulanan dan ingin mengonversinya menjadi data mingguan atau tahunan; di sinilah resampling digunakan.
Mengonversi data bulanan ke mingguan atau harian pada dasarnya adalah upsampling. Teknik interpolasi digunakan untuk meningkatkan frekuensi di sini.
Sebaliknya, mengonversi data bulanan menjadi tahunan disebut downsampling, di mana teknik agregasi data diterapkan.
25. Bagaimana Anda melakukan one-hot encoding menggunakan pandas?
Kita melakukan one-hot encoding untuk mengonversi nilai kategorikal menjadi numerik, sehingga dapat digunakan oleh algoritma machine learning.
Untuk produksi, menggunakan
Scikit-learnOneHotEncoderadalah opsi yang lebih disukai karena mempertahankan skema.26. Bagaimana cara membuat line plot di pandas?
Untuk membuat line plot, kita menggunakan fungsi plot di
pandas.Catatan: Anda kini dapat mengganti backend ke
Plotlyuntuk grafik interaktif:pd.options.plotting.backend = "plotly".27. Apa metode pandas untuk mendapatkan ringkasan statistik semua kolom dalam DataFrame?
df.describe()mengembalikan statistik seperti mean, nilai persentil, min, max, dan lain-lain, untuk setiap kolom dalam DataFrame.28. Apa itu rolling mean?
Rolling mean juga disebut sebagai moving average karena idenya adalah menghitung rata-rata titik data untuk jendela tertentu dan menggeser jendela tersebut di seluruh data. Ini akan mengurangi fluktuasi dan menonjolkan tren jangka panjang pada data deret waktu.
Sintaksnya seperti ini:
df['column_name'].rolling(window=n).mean()29. Apa itu SettingWithCopyWarning, dan bagaimana cara memperbaikinya?
Peringatan ini terjadi ketika
pandastidak yakin apakah Anda sedang memodifikasi view atau salinan. Dalampandasmodern (konteks 3.0+), Copy-on-Write (CoW) adalah standar. CoW secara tegas memisahkan view dan copy, memastikan bahwa memodifikasi subset tidak pernah diam-diam mengubah frame asli kecuali diminta secara eksplisit. Ini sebagian besar menghilangkan ambiguitas yang menyebabkan peringatan tersebut.Untuk memperbaikinya pada versi
pandasyang lebih lama, gunakan.loc[]untuk pengindeksan eksplisit atau tetapkan irisan tersebut ke variabel baru sebelum melakukan perubahan untuk memastikan kejelasan dan menghindari perilaku yang tidak diinginkan. Baca lebih lanjut di blog ini: How to Fix SettingWithCopyWarning.30. Bagaimana Anda memvalidasi skema DataFrame di produksi?
Standar industri adalah menggunakan
pandera, sebuah library yang memberlakukan pemeriksaan kualitas data yang ketat saat runtime.panderamemungkinkan Anda mendefinisikan skema yang memvalidasi tipe data kolom dan menerapkan logika statistik, seperti memastikan nilai berada dalam rentang tertentu atau bahwa sebuah kolom bersifat unik.Anda dapat menggunakan dekoratornya (misalnya,
@pa.check_types) untuk secara otomatis memvalidasi input dan output fungsi Anda, mencegah "data kotor" diam-diam merusak pipeline hilir Anda. Ini secara efektif bertindak sebagai unit testing untuk data Anda sendiri.Mempersiapkan Wawancara
Kemungkinan besar Anda akan ditanya setidaknya beberapa pertanyaan yang paling sering muncul, itulah mengapa ide yang baik untuk menggunakannya saat persiapan. Selain pandas, peran yang berorientasi pada data menuntut banyak keterampilan lain. Berikut daftar periksa untuk sukses dalam keseluruhan proses wawancara:
Memahami persyaratan pekerjaan
Tinjau deskripsi pekerjaan dan tanggung jawabnya, serta pastikan keterampilan dan resume Anda selaras dengan itu. Selain itu, mengetahui tentang perusahaan dan bagaimana peran Anda berdampak pada mereka merupakan nilai tambah.
Koding Python
Pewawancara terlebih dahulu akan memeriksa keterampilan Python Anda sebelum menanyakan tentang library-nya (pandas). Jadi, persiapkan diri dengan keterampilan Python yang kuat.
Untuk peran analis, bahasa Python saja sudah memadai. Namun jika Anda melamar sebagai data scientist atau ML engineer, penting untuk menyelesaikan tantangan koding Python.
Proyek data
Pastikan Anda memiliki beberapa problem data dunia nyata yang telah Anda selesaikan di resume. Untuk yang berpengalaman, Anda dapat membahas proyek-proyek masa lalu Anda. Jika Anda baru di bidang ini, cobalah menyelesaikan beberapa proyek dari Kaggle.
Konsep lanjutan
Di luar dasar-dasar tersebut, pertanyaan tambahan akan bergantung pada perannya.
Untuk analis, pertanyaan bisa berasal dari Excel, dasbor visualisasi data, statistika, dan probabilitas.
Selain itu, pewawancara dapat mendalami topik machine learning dan deep learning jika Anda melamar peran data scientist atau ML engineer.
Harapkan pertanyaan seputar perancangan sistem jika Anda melamar peran yang sangat teknis atau berpengalaman. Tinjau pertanyaan desain yang umum dan latih problem perancangan sistem ML end-to-end.
Kesimpulan
Mendapatkan pekerjaan di industri data sering kali membutuhkan keterampilan Pandas yang kuat. Daftar pertanyaan wawancara teoretis dan praktis di atas seharusnya membantu Anda unggul pada bagian pandas dalam wawancara. Ditambah, tips di bagian akhir memastikan seluruh proses wawancara Anda berjalan lancar.
Anda dapat menggunakan sumber daya berikut untuk membantu mempersiapkan wawancara pandas Anda: