Ilmu Data - Persiapan Data
Sebelum menganalisis data, seorang Data Scientist harus mengekstrak data, dan membuatnya bersih dan berharga.
Ekstrak dan Baca Data Dengan Panda
Sebelum data dapat dianalisis, data tersebut harus diimpor/diekstraksi.
Pada contoh di bawah ini, kami menunjukkan cara mengimpor data menggunakan Pandas dengan Python.
Kami menggunakan read_csv()
fungsi untuk mengimpor file CSV dengan data kesehatan:
Contoh
import pandas as pd
health_data = pd.read_csv("data.csv", header=0, sep=",")
print(health_data)
Contoh Dijelaskan
- Impor perpustakaan Pandas
- Beri nama bingkai data sebagai
health_data
. header=0
berarti header untuk nama variabel dapat ditemukan di baris pertama (perhatikan bahwa 0 berarti baris pertama dengan Python)sep=","
berarti bahwa "," digunakan sebagai pemisah antara nilai-nilai. Ini karena kami menggunakan jenis file .csv (nilai yang dipisahkan koma)
Tip: Jika Anda memiliki file CSV besar, Anda dapat menggunakan
head()
fungsi untuk hanya menampilkan 5 baris teratas:
Contoh
import pandas as pd
health_data = pd.read_csv("data.csv", header=0, sep=",")
print(health_data.head())
Pembersihan Data
Lihat data yang diimpor. Seperti yang Anda lihat, datanya "kotor" dengan nilai yang salah atau tidak terdaftar:
- Ada beberapa bidang kosong
- Pulsa rata-rata 9.000 tidak mungkin
- 9 000 akan diperlakukan sebagai non-numerik, karena pemisah ruang
- Satu pengamatan pulsa maks dilambangkan sebagai "AF", yang tidak masuk akal
Jadi, kita harus membersihkan data untuk melakukan analisis.
Hapus Baris Kosong
Kami melihat bahwa nilai non-numerik (9.000 dan AF) berada di baris yang sama dengan nilai yang hilang.
Solusi: Kami dapat menghapus baris dengan pengamatan yang hilang untuk memperbaiki masalah ini.
Saat kami memuat kumpulan data menggunakan Pandas, semua sel kosong secara otomatis diubah menjadi nilai "NaN".
Jadi, menghapus sel NaN memberi kita kumpulan data bersih yang dapat dianalisis.
Kita dapat menggunakan dropna()
fungsi untuk menghapus NaN. axis=0 berarti kita ingin menghapus semua baris yang memiliki nilai NaN:
Contoh
health_data.dropna(axis=0,inplace=True)
print(health_data)
Hasilnya adalah kumpulan data tanpa baris NaN:
Kategori Data
Untuk menganalisis data, kita juga perlu mengetahui jenis data yang kita hadapi.
Data dapat dibagi menjadi tiga kategori utama:
- Numerik - Berisi nilai numerik. Dapat dibagi menjadi dua kategori:
- Diskrit: Angka dihitung sebagai "keseluruhan". Contoh: Anda tidak dapat melatih 2,5 sesi, itu adalah 2 atau 3
- Berkelanjutan: Angka bisa menjadi presisi tak terbatas. Misalnya, Anda dapat tidur selama 7 jam, 30 menit, dan 20 detik, atau 7,533 jam
- Categorical - Berisi nilai-nilai yang tidak dapat diukur satu sama lain. Contoh: Warna atau jenis pelatihan
- Ordinal - Berisi data kategorikal yang dapat diukur satu sama lain. Contoh: Nilai sekolah di mana A lebih baik dari B dan seterusnya
Dengan mengetahui jenis data Anda, Anda akan dapat mengetahui teknik apa yang digunakan saat menganalisisnya.
Tipe Data
Kita dapat menggunakan info()
fungsi untuk membuat daftar tipe data dalam kumpulan data kita:
Contoh
print(health_data.info())
Hasil:
Kami melihat bahwa kumpulan data ini memiliki dua jenis data yang berbeda:
- Float64
- Obyek
Kami tidak dapat menggunakan objek untuk menghitung dan melakukan analisis di sini. Kita harus mengonversi objek tipe menjadi float64 (float64 adalah angka dengan desimal di Python).
Kita dapat menggunakan astype()
fungsi untuk mengubah data menjadi float64.
Contoh berikut mengubah "Average_Pulse" dan "Max_Pulse" menjadi tipe data float64 (variabel lain sudah bertipe data float64):
Contoh
health_data["Average_Pulse"]
= health_data['Average_Pulse'].astype(float)
health_data["Max_Pulse"] =
health_data["Max_Pulse"].astype(float)
print
(health_data.info())
Hasil:
Sekarang, kumpulan data hanya memiliki tipe data float64.
Analisis Data
Setelah kami membersihkan kumpulan data, kami dapat mulai menganalisis data.
Kita dapat menggunakan describe()
fungsi dalam Python untuk meringkas data:
Contoh
print(health_data.describe())
Hasil:
Durasi | Rata_Pulse | Maks_Pulsa | Pembakaran Kalori | Jam_Kerja | Jam_Tidur | |
---|---|---|---|---|---|---|
Menghitung | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 | 10.0 |
Berarti | 51.0 | 102,5 | 137.0 | 285.0 | 6.6 | 7.5 |
Std | 10.49 | 15.4 | 11.35 | 30.28 | 3.63 | 0,53 |
min | 30.0 | 80.0 | 120.0 | 240.0 | 0,0 | 7.0 |
25% | 45.0 | 91.25 | 130.0 | 262.5 | 7.0 | 7.0 |
50% | 52.5 | 102,5 | 140.0 | 285.0 | 8.0 | 7.5 |
75% | 60.0 | 113,75 | 145.0 | 307.5 | 8.0 | 8.0 |
Maks | 60.0 | 125.0 | 150.0 | 330.0 | 10.0 | 8.0 |
- Hitung - Menghitung jumlah pengamatan
- Rata -rata - Nilai rata-rata
- Std - Standar deviasi (dijelaskan dalam bab statistik)
- Min - Nilai terendah
- 25% , 50% dan 75% adalah persentil (dijelaskan di bab statistik)
- Maks - Nilai tertinggi