Mavzu: Bo'sh qiymatli datasetlarni to'ldirish yoki ularni tushirib qoldirish
Ishdan maqsad: Ma’lumotlar to’plamini optimallashtirishda Pandas kutubxonasining dropna() modulidan foydalanib bo’sh qiymatlarni tushirib qoldirishni tashkillashtirish. Ustunlardagi kategoriyali ma’lumotlarni ushbu ustundagi eng ko’p takrorlangan qiymat(mode) bilan to’ldirish. Boshqa qiymatlarni esa ushbu vaziyatga qarab ustundagi qiymatlarning mean yoki medianlari bilan to’ldirish, df.shape() orqali qayta ishlangan ma’lumotlar sonini chiqarish va bajargan ishdan xulosa chiqarish.
1-variant
death.csv database dan foydalanib ma’lumotlarni optimallashtiramiz
Kutubxonalarni yuklab olish:
import numpy as np import pandas as pd
Ma’lumotlarni o’qib olish data=pd.read_csv('death.csv') data
1-rasm. O’qib olingan dataset ko’rinishi.
O’qib olingan ma’lumotlar soni chiqarish df.shape() orqali
# Ma'lumotlarni sonini chiqarish
df.shape
(3141, 11)
Hozirgi datasetda 3141 ta qator, 11 ta ustun mavjud ekan. Har bir ustun bo’yicha bo’sh qiymatlar yig’indisini chiqarish:
df.isnull().sum()
Qatorning 80% idan ko’p qismi mavjud bo’lmasa qatorni tushirib qoldirish,
ism="Alimov Shohruh"
foiz=(len(ism)+52)/100
thres=df.shape[0]*(0.52)
df=df.dropna(axis=1, thresh=thres)
df
# Bo'sh qiymatlarni tushirib qoldirish qator boyicha
thres=df.shape[1]*(0.52)
df=df.dropna(axis=0, thresh=thres)
df
2-rasm. Qatorlari o’chgandan keyingi dataset.
df.shape
(3059, 7)
Qatorlarni o’chirgandan keyin 139ta qator qoldi. Qolgan ma’lumotlarni har bir ustuni bo’yicha bo’sh qiymatlarning yig’indisini chiqarish:
df.isnull().sum()
Qolgan bo’sh qiymatlarni mean, median, mode lardan mosidan foydalanib to’ldirib chiqamiz. Sepal va Petal yaproqlarining uzunligi va enini mean bilan, gul turini (class label) mode bilan to’ldirib chiqamiz.
sepal_length=df['sepal_length'].mean() sepal_width=df['sepal_width'].mean() petal_length=df['petal_length'].mean() petal_width=df['petal_width'].mean() class_label=df['class_label'].mode().iloc[0]
df['sepal_length']=df['sepal_length'].fillna(value=sepal_length) df['sepal_width']=df['sepal_width'].fillna(value=sepal_width) df['petal_length']=df['petal_length'].fillna(value=petal_length) df['petal_width']=df['petal_width'].fillna(value=petal_width) df['class_label']=df['class_label'].fillna(value=class_label)
df
3-rasm. Bo’sh qiymatlarni to’ldirgandan keyingi dataset ko’rinishi. df.isnull().sum()
rows, columns=df.shape rows, columns
Yuqorida ko’rib turganimizdek dataset ustunlarining bo’sh qoymatlari qolmadi. Natijada 139ta qator, 5ta ustun qoldi.
Xulosa
Bu laboratoriyani ishini bajarish davomida ma’lumotlar to’plamini optimallashtirish bilan tanishdim. Berilgan datasetdan pandas kutubxonasining dropna() modulidan foydalanib bo’sh qiymatlarni tushirib qoldirdim. Qolgan bo’sh qiymatlarni mean, mode larni hisoblab to’ldirib chiqdim. Bundan maqsad, qurgan modelimizning aniqligini oshirish.
Do'stlaringiz bilan baham: |