Fungsi - Fungsi Pandas Library Python Untuk Data Scientist Yang Sering Digunakan - CRUDPRO

Fungsi - Fungsi Pandas Library Python Untuk Data Scientist Yang Sering Digunakan

Fungsi - Fungsi Pandas Library Python Untuk Data Scientist Yang Sering Digunakan

Menurut Forbes, data scientist menghabiskan 60% waktunya untuk membersihkan dan mengatur data. Ini menunjukkan betapa pentingnya pembersihan data dan perselisihan data dalam proyek ilmu data.

Pembersihan data terdiri dari pembersihan data yang akan kita gunakan, sehingga kita tidak memiliki data yang salah, rusak, duplikat, atau tidak lengkap. Data dunia nyata tidak sebersih kebanyakan kumpulan data yang Anda kerjakan di kursus online. Ini membuat pembersihan data penting dalam proyek dunia nyata.

Langkah penting lainnya dalam sebuah proyek adalah mengubah (alias pertengkaran) data mentah kita ke format lain, sehingga siap untuk dianalisis.

Dalam panduan ini, kita akan mempelajari cara menggunakan 14 fungsi panda untuk membersihkan dan mengubah kumpulan data yang akan digunakan untuk proyek ilmu data nanti.

Membaca dataset

Untuk mengikuti tutorial ini, Anda harus menginstal Python dan panda. Untuk menginstal panda, jalankan perintah di bawah ini di terminal.

pip isntall pandas

Sekarang kita telah menginstal panda, mari kita lihat data yang akan kita kerjakan. Ini adalah dataset sepak bola yang berisi informasi sejarah tentang Piala Dunia FIFA dari tahun 1930 hingga 2022. Anda dapat mengunduh semua dataset di GitHub atau Google Drive saya.

Untuk membaca ketiga file CSV ini, kita menggunakan metode .read_csv.

df_historical_data = pd.read_csv('fifa_worldcup_matches.csv')
df_fixture = pd.read_csv('fifa_worldcup_fixture.csv')
df_missing_data = pd.read_csv('fifa_worldcup_missing_data.csv')

df_historical_data: pertandingan dimainkan dari tahun 1930 hingga 2018

df_missing_data: tidak ada kecocokan untuk ditambahkan ke df_historical_data

df_fixture: perlengkapan Piala Dunia Qatar 2022 yang akan datang

Ayo bersihkan 3 dataset ini!

Menghapus spasi awal dan akhir dengan .strip

Mari kita mulai dengan membersihkan kerangka data df_fixture. Mari kita lihat kerangka data ini.

Fungsi - Fungsi Pandas Library Python Untuk Data Scientist Yang Sering Digunakan

Ternyata, semuanya baik-baik saja, bukan?

Tidak! Ada yang salah dengan itu — ada spasi awal dan akhir di dalam string di kolom home dan away. Mereka tidak mudah dikenali.

Alih-alih hanya memiliki nama negara, kami memiliki sesuatu seperti ini di kolom kami: Qatar , Amerika Serikat . Ruang putih seperti itu dapat merusak analisis kita nanti, jadi kita harus menghapusnya menggunakan .strip.

Itu saja untuk kerangka data df_fixture. Sekarang mari kita lanjutkan dengan kerangka data lain.

Mengidentifikasi data NaN dengan .isnull dan menjatuhkannya dengan .dropna

Sekarang mari bersihkan kerangka data df_missing_data. Masalah dengan kerangka data ini adalah ia memiliki data NaN.

Kami dapat memverifikasi ini benar dengan menggunakan .isnull.

df_missing_data[df_missing_data['home'].isnull()]
Fungsi - Fungsi Pandas Library Python Untuk Data Scientist Yang Sering Digunakan

Sekarang kita harus menghapus semua baris yang memiliki nilai NaN. Untuk melakukannya, kami menggunakan .dropna.

df_missing_data.dropna(inplace=True)
Menggabungkan 2 kerangka data dengan .concat dan menjatuhkan duplikat dengan .drop_duplicates

Sekarang setelah df_missing_data dibersihkan, kita dapat menambahkannya ke data historis di dalam df_historical_data menggunakan .concat.

df_historical_data = pd.concat([df_historical_data, df_missing_data], ignore_index=True)

Masalah dengan menggabungkan 2 kerangka data adalah kami mungkin memiliki data yang sama di dalam kedua kerangka data, jadi saat kami menggabungkannya, kami bisa mendapatkan duplikat. Inilah mengapa kami menggunakan drop_duplicates untuk menghapus potensi duplikat yang bisa kami dapatkan. Selain itu, kami akan mengurutkan kerangka data berdasarkan tahun.

df_historical_data.drop_duplicates(inplace=True)
df_historical_data.sort_values('year', inplace=True)

Begini tampilan df_historical_data sekarang.

Fungsi - Fungsi Pandas Library Python Untuk Data Scientist Yang Sering Digunakan

Kumpulan data terakhir ini memiliki 901 baris, yang mewakili 901 pertandingan yang dimainkan di semua Piala Dunia.

Menemukan anomali dengan .contains dan menghapusnya dengan .drop

Sekarang saatnya membersihkan kerangka data df_historical_data. Kami akan mulai dengan menghapus anomali yang tidak ingin kami sertakan dalam kumpulan data akhir kami.

Berdasarkan tujuan proyek, kami dapat menghapus atau menyimpan catatan. Saya berencana menggunakan kumpulan data ini untuk memprediksi pemenang Piala Dunia 2022 berdasarkan gol yang dicetak oleh masing-masing tim nasional. Dengan mengingat hal itu, saya tidak ingin menyertakan pertandingan yang menghasilkan "w/o" (w/o) karena itu memberi penghargaan kepada tim, jika tim lain tidak memiliki pemain yang tersedia, atau mereka telah didiskualifikasi.

Dalam sejarah Piala Dunia ada satu pertandingan yang berakhir dengan kemenangan mudah - Swedia vs Austria. Untuk mencari walkover, kita bisa menggunakan .contains dengan string “w/o” pada kolom skor. Kita juga bisa mencari “Swedia”/“Austria” di kolom Home/Away.

delete_index = df_historical_data[df_historical_data['home'].str.contains('Sweden') &
                                  df_historical_data['away'].str.contains('Austria')].index

Setelah kami menemukan anomali, kami menghapusnya dengan .drop.

df_historical_data.drop(index=delete_index, inplace=True)
Menggunakan regex untuk menemukan ketidakkonsistenan dan menggantinya dengan .replace

Data dunia nyata tidak konsisten. Beberapa kolom mungkin mengikuti pola dalam pratinjau bingkai data tetapi jika Anda menjelajahinya baris demi baris, Anda mungkin menemukan ketidakkonsistenan yang dapat merusak proyek Anda.

Dalam kumpulan data kami, kolom skor tampaknya mengikuti format “HomeGoals-AwayGoals” tetapi beberapa baris memiliki beberapa informasi tambahan. Untuk menemukan baris seperti itu, kita dapat menggunakan ekspresi reguler (regex).

Jika kita menggunakan regex [^\d–], kita dapat menemukan karakter yang bukan angka atau –.

df_historical_data[df_historical_data['score'].str.contains('[^\d–]')]
Fungsi - Fungsi Pandas Library Python Untuk Data Scientist Yang Sering Digunakan

Sekarang untuk mengganti apa pun yang bukan digit atau dengan string kosong, kami menggunakan .replace.

df_historical_data['score'] = df_historical_data['score'].str.replace('[^\d–]', '', regex=True)

Terakhir, kami memastikan kolom rumah/tandang tidak memiliki spasi putih.

df_historical_data['home'] = df_historical_data['home'].str.strip()
df_historical_data['away'] = df_historical_data['away'].str.strip()

Dengan ini, pembersihan selesai! Sekarang saatnya mengubah data kita sehingga siap digunakan dalam sebuah proyek.

Memisahkan string dalam kolom dengan .split

Biasanya, kami ingin kolom hanya memiliki data numerik dan bukan simbol seperti -. Untuk menghilangkan tanda hubung, kami akan menggunakan .split dan mengaktifkan parameter expand untuk menempatkan keluaran di dua kolom baru "HomeGoals", dan "AwayGoals"

Lalu kita drop kolom skor dengan .drop.

df_historical_data[['HomeGoals', 'AwayGoals']] = df_historical_data['score'].str.split('–', expand=True)
df_historical_data.drop('score', axis=1, inplace=True)
Mengganti nama kolom dengan .rename dan mengubah tipe data dengan .astype

Mari ganti nama kolom kita agar terlihat jauh lebih baik.

df_historical_data.rename(columns={'home': 'HomeTeam', 'away': 'AwayTeam', 
                                   'year':'Year'}, inplace=True)

Juga, mari kita lihat tipe data saat ini menggunakan .dtypes dan verifikasi mereka memiliki tipe data yang benar.

df_historical_data.dtypes
Fungsi - Fungsi Pandas Library Python Untuk Data Scientist Yang Sering Digunakan

Seperti yang bisa kita lihat, kolom HomeGoals dan AwayGoals memiliki tipe data objek. Untuk mengubah tipe data ini menjadi int kita harus menggunakan .astype.

df_historical_data = df_historical_data.astype({'HomeGoals': int, 'AwayGoals':int})
Mengekspor kerangka data

Terakhir, kita dapat mengekspor kumpulan data bersih kita ke CSV menggunakan metode .to_csv. Mari ekspor df_historical_data dan df_fixture.

df_historical_data.to_csv('clean_fifa_worldcup_matches.csv',index=False)
df_fixture.to_csv('clean_fifa_worldcup_fixture.csv',index=False)

Itu dia! Sekarang data kita siap untuk digunakan dalam sebuah proyek.

Saya harap artikel ini dapat bermanfaat bagi kita semua. So Happy coding guys!