Last Updated on March 31, 2022 by
Ketika kita berbicara tentang ilmu data, kita biasanya mengacu pada analisis data melalui peringkasan, visualisasi, algoritma canggih yang mempelajari pola dalam data (pembelajaran mesin), dan alat canggih lainnya.
Ketika kami membahas istilah tersebut Phyton menjadi salah satu bahasa pemrograman yang popular.
Tetapi mengapa Python begitu populer dan spesial di dunia ilmu data? Ada banyak alasan, dan yang penting adalah ekosistem dan pustaka Python yang membuat ilmu data tampak alami bagi Python.
Panda adalah salah satu perpustakaan ini, yang digunakan, digunakan, atau setidaknya didengar oleh setiap data science di dunia.
Panda merupakan bagian penting dari ekosistem tempat banyak alat ilmu data lainnya dibangun di atasnya atau menyediakan fungsi khusus untuk panda.
Panduan ini memperkenalkan panda untuk pengembang dan bertujuan untuk membahas apa, mengapa, dan bagaimana fitur panda yang paling umum digunakan.
Sebelum memulai, jika Anda ingin mengakses kode sumber lengkap panda pada phyton untuk diikuti proyek ini, Anda dapat mengunduh kode sumber proyek dari GitHub.
Table of Contents
Untuk apa Panda?
Panda pada phyton, dalam beberapa tahun terakhir, telah memantapkan dirinya sebagai salah satu perpustakaan terbaik untuk analisis data. Begitu pentingnya dan kekuatan panda sehingga salah satu hal pertama yang dilakukan ilmuwan data saat menerima kumpulan data adalah memuatnya ke dalam panda untuk mulai memahaminya.
Panda memberi mereka apa pun yang mereka butuhkan untuk membersihkan, mengubah, dan menganalisis data. Ini memberikan begitu banyak fitur bagi analis sehingga dapat membuat keseluruhan buku tentang mereka.
Berikut beberapa hal yang dapat Anda lakukan dengan panda:
- Jelaskan: dapatkan informasi tentang kumpulan data, hitung nilai statistik, jawab pertanyaan langsung seperti rata-rata, median, min, maks, korelasi, distribusi, dan banyak lagi.
- Bersihkan: Hapus duplikat, ganti nilai kosong, filter baris, kolom
- Transformasi: hitung nilai baru, ganti nama kolom, mutasi data Anda
- Visualisasikan: Buat visualisasi canggih dengan matplotlib, seaborn, atau lainnya langsung dari kumpulan data panda Anda
- Penyimpanan: memuat dan menyimpan data dari dan ke file seperti CSV, JSON atau terhubung langsung ke database
Pasang dan impor
Panda adalah pustaka eksternal oleh karena itu memerlukan penginstalan untuk proyek Anda. Nama pustaka adalah panda dan Anda dapat menginstalnya menggunakan pengelola paket favorit Anda untuk Python.
Dalam kasus ini, kami menggunakan pipenv bukan menggunakan conda tetapi prosesnya berlaku sama.
Jika Anda memeriksa kode berikut dari GitHub, cukup jalankan perintah berikut karena semua dependensi ada di Pipfile
Jika Anda ingin mengikuti tutorial ini dari proyek baru, Anda cukup menginstal panda dengan menjalankan: pipenv install panda
Hal terakhir sebelum memulai panda adalah mengimpor perpustakaan. Tidak wajib menyediakan akan tetapi sangat umum digunakan pd, membuatnya mudah, dan begitulah cara orang melakukannya, jadi mari kita ikuti.
Basis dari Panda: Series dan DataFrames
Panda memiliki dua blok bangunan dasar untuk semua fungsinya: Series dan DataFrames. Sederhananya, sebuah Series adalah kolom, dan DataFrames merupakan kumpulan data multidimensi dengan banyak Series.
Membaca data
Meskipun Anda dapat secara manual membuat DataFrames dalam panda, yang membuatnya mudah digunakan adalah kemampuannya untuk memuat data secara langsung dari berbagai sumber seperti CSV, JSON, atau database.
Dari file CSV
Membaca file CSV sesederhana satu baris kode dengan panda.
No | PassengerId | Selamat | Pclass | … | Tarif | Kabin | Memulai |
0 | 1 | 0 | 3 | … | 7.2500 | NaN | S |
1 | 2 | 1 | 1 | … | 71.2833 | C85 | C |
2 | 3 | 1 | 3 | … | 7.9250 | NaN | S |
3 | 4 | 1 | 1 | … | 53.1000 | C123 | S |
4 | 5 | 0 | 3 | … | 8.0500 | NaN | S |
Mengimpor file CSV semudah memanggil satu fungsi read_csv dengan nama file. Baris kode kedua memanggil fungsi head yang mencetak lima baris data pertama. Lebih lanjut tentang itu nanti.
Dari file JSON
Membaca file JSON tidak lebih rumit daripada membaca CSV, ini masalah pemanggilan fungsi sederhana:
df_json = pd.read_json("sample.json")
df_json.head()
Dari database SQL
Membaca data dari database SQL memerlukan beberapa langkah tambahan dibandingkan dengan membaca file CSV atau JSON. Ini karena panda tidak mendukung database secara asli tetapi bergantung pada pustaka pihak ketiga untuk membuat koneksi.
Setelah koneksi ke database siap, Anda dapat bekerja langsung dengan panda menggunakan fungsi tersebut read_sql_query.
Untuk skenario kami, kami akan membaca data dari SQLLite, tetapi mesin database lain didukung, seperti MySQL, Postgres, dll.
Catatan: Jika Anda menjalankan kode ini sendiri dan tidak menggunakan proyek yang disediakan tutorial, pastikan Anda telah menginstal pysqlite3 sebelum melanjutkan.
Seperti yang telah dibahas, pertama, kita perlu membuat koneksi ke database.
Nanti, kita bisa langsung menjalankan kueri SQL di panda untuk mengambil informasi.
Kustomisasi
Sejauh ini, kami membaca data dengan menggunakan nilai default dan berfungsi dengan baik untuk banyak kasus. Namun, mungkin ada situasi di mana Anda perlu mengubah cara membaca dan mengurai data. Fungsi membaca panda adalah selesai dan menawarkan banyak penyesuaian.
Satu parameter penting dan paling sering digunakan panda pada phyton adalah index_col yang memungkinkan Anda menentukan kolom atau kolom yang digunakan sebagai indeks DataFrame. Hal yang sangat berguna saat mengiris atau memilih data, seperti yang akan kita lakukan nanti di panduan.
Menyimpan Data di Panda
Terkadang kami melakukan perubahan pada kumpulan data kami untuk memfasilitasi analisis data. Namun, perubahan tersebut akan hilang kecuali kita menyimpannya. Panda pada phyton menyediakan metode sederhana untuk menyimpan DataFrame ke dalam file atau database.
Memanipulasi DataFrames
DataFrames mengekspos ratusan metode untuk bekerja pada kumpulan data, terlalu banyak untuk mengetahui semuanya. Namun, beberapa operasi sering terjadi selama tugas analisis data. Kami akan meninjau semua metode yang penting untuk dipahami oleh semua ilmuwan data.
Menghapus duplikat
Duplikat dapat merusak hasil kita, jadi sangat penting untuk menanganinya. Panda pada phyton menawarkan beberapa utilitas untuk menangani duplikat seperti drop_duplicates, yang secara otomatis menghapus semua nilai duplikat dari DataFrame.
df_movies = pd.read_csv(‘movies.csv')
df_movies.shape
df_movies = df_movies.drop_duplicates()
df_movies.shape
Perhatikan bahwa untuk contoh kami, kami memuat file baru yang berisi dua duplikat, dan berikut adalah hasilnya:
(77, 8)
(75, 8)
Ingatlah bahwa drop_duplicates
itu tidak akan memengaruhi DataFrame asli (secara default), dan sebaliknya, ini akan mengembalikan DataFrame baru dengan nilai unik. Inplace = True
sebagai gantinya, Anda dapat meneruskan argumen untuk mengubah aslinya.
Mengganti nama kolom
Ada beberapa cara untuk mengganti nama kolom bingkai data di panda tetapi salah satu cara yang paling berguna dan mudah adalah menggunakan rename fungsi tersebut:
df_tmp = df_titanic.rename(columns = {"PassengerId" : "PassId"})
df_tmp.head()
No | PassId | Selamat | Pclass | … | Tarif | Kabin | Memulai |
0 | 1 | 0 | 3 | … | 7.2500 | NaN | S |
1 | 2 | 1 | 1 | … | 71.2833 | C85 | C |
2 | 3 | 1 | 3 | … | 7.9250 | NaN | S |
3 | 4 | 1 | 1 | … | 53.1000 | C123 | S |
4 | 5 | 0 | 3 | … | 8.0500 | NaN | S |
Mirip dengan drop_column, rename akan mengembalikan DataFrame baru dengan pembaruan. rename juga mendukung penggantian nama lebih dari satu kolom sekaligus:
df_tmp = df_titanic.rename(columns = {"PassengerId" : "PassId", "Pclass": "PassClass"})
df_tmp.head()
Bekerja dengan nilai yang hilang
Data yang hilang dalam skenario kehidupan nyata bisa menjadi masalah besar. Untungnya, panda dirancang untuk mendeteksi nilai yang hilang atau nilai NA (Tidak Tersedia). Untuk mendeteksi nilai null, kami menggunakan isnull()fungsi:
df_titanic.isnull()
PassengerId | Selamat | Pclass | … | Tiket | Tarif | Kabin | Memulai | |
0 | Salah | Salah | Salah | … | Salah | Salah | Benar | Salah |
1 | Salah | Salah | Salah | … | Salah | Salah | Salah | Salah |
2 | Salah | Salah | Salah | … | Salah | Salah | Benar | Salah |
3 | Salah | Salah | Salah | … | Salah | Salah | Salah | Salah |
4 | Salah | Salah | Salah | … | Salah | Salah | Benar | Salah |
.. | … | … | … | … | … | … | … | … |
886 | Salah | Salah | Salah | … | Salah | Salah | Benar | Salah |
887 | Salah | Salah | Salah | … | Salah | Salah | Salah | Salah |
888 | Salah | Salah | Salah | … | Salah | Salah | Benar | Salah |
889 | Salah | Salah | Salah | … | Salah | Salah | Salah | Salah |
890 | Salah | Salah | Salah | … | Salah | Salah | Benar | Salah |
Isnull mengembalikan fungsi DataFrame baru dengan bentuk yang asli dengan nilai-nilai boolean (Benar atau Salah), menunjukkan apakah sel tertentu adalah null atau tidak. Ini bisa sangat membantu untuk melakukan penghitungan atau mengganti nilai kosong.
Terkadang kami tidak dapat bekerja dengan nilai yang hilang, jadi yang terbaik adalah menghapus seluruh baris. Anda dapat mencapainya dengan fungsi tersebut dropna.
df_titanic.shape
tmp = df_titanic.dropna()
tmp.shape
Yang mengakibatkan:
(891, 12)
Dilihat dari hasilnya, sebagian besar catatan kami berisi setidaknya satu kolom kosong. Tidaklah bijaksana dalam skenario ini untuk begitu saja melepaskan semua baris ini dari DataFrame.
Mengiris, memilih, mengekstrak data
Sejauh ini, kami telah bekerja dengan seluruh kumpulan data atau melakukan pemfilteran dasar seperti menghapus baris kosong. Tapi bagaimana kita bisa dengan sengaja memilih data dari DataFrames?
Ada dua cara untuk mengakses atau mengiris DataFrame panda pada phyton sebagai berikut, baik menurut kolom atau baris.
Menurut kolom
Mengekstrak data berdasarkan kolom pada DataFrame sangat mudah. Anda cukup menggunakan []dengan nama seri (kolom) sebagai berikut:
ds_survived = df_titanic['Survived']
ds_survived
type(ds_survived)
Dalam hal ini akan menghasilkan:
0 0
1 1
2 1
3 1
4 0
886 0
887 1
888 0
889 1
890 0
Name: Survived, Length: 891, dtype: int64
panda.core.series.Series
Perhatikan bahwa hasilnya adalah DataSeries dan bukan DataFrame. Terkadang karena beberapa metode dan properti berbeda di antara keduanya, kami ingin mengubah DataSeries menjadi DataFrame, kami melakukannya dengan menggunakan [[]] notasi:
df_survived = df_titanic[['Survived']]
type(df_survived)
Output:
panda.core.frame.DataFrame
Menurut baris
Saat memilih data per baris, kami memiliki lebih banyak opsi daripada berdasarkan kolom. Kita dapat mengakses baris dengan indeks atau melakukan pencarian di dataset dengan query atau menerapkan kondisional.
Kita akan mulai dengan properti loc, memungkinkan akses ke sekelompok baris dan kolom dengan label atau array boolean.
Perhatikan bahwa jika kami mencoba menggunakan locdengan label, Anda harus mengindeks DataFrame Anda seperti yang kami lakukan pada kasus minuman DataFrame di atas.
df_drinks.loc[‘Argentina’]
Selain itu, Anda perlu mempertimbangkan bahwa mencari berdasarkan indeks memerlukan pencocokan tepat dan peka huruf besar / kecil, jadi dalam kasus kami, Argentina benar tetapi Argatau argentina akan memunculkan pengecualian.
Output untuk kode tersebut adalah:
beer_servings 193
spirit_servings 25
wine_servings 221
total_litres_of_pure_alcohol 8.3
continent SA
Name: Argentina, dtype: object
Kesimpulan
Data scientist harus terlebih dahulu menjelajahi, membersihkan, dan mengubah data mereka sebelum melanjutkan ke proses visualisasi.
Perpustakaan Panda pada phyton memudahkan untuk melakukan tindakan ini hanya dengan beberapa perintah sederhana dan dapat digunakan untuk memplot data daripada menggunakan pustaka lain seperti matplotlib dan seaborn.
Namun, Anda mungkin perlu mempelajari perpustakaan visualisasi ini untuk bagan yang lebih kompleks.
Sekian penjelasan dari encoding adalah, semoga artikel ini bermanfaat. Ikuti dan allow notification dari situs Web App
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.