Bu yazımızda veri setimizdeki eksik verileri nasıl bir strateji ile doldurmayı öğreneceğiz. Bunun için sklearn kütüphanesini kullanacağız.
eksikveriler.csv dosyasını okuttuğumuz zaman boş olan yerler NaN olarak pythonda gözükmektedir.
[[130. 30. 10.] [125. 36. 11.] [135. 34. 10.] [133. 30. 9.] [129. 38. 12.] [180. 90. 30.] [190. 80. 25.] [175. 90. 35.] [177. 60. 22.] [185. 105. 33.] [165. 55. 27.] [155. 50. 44.] [160. 58. nan] [162. 59. 41.] [167. 62. 55.] [174. 70. 47.] [193. 90. nan] [187. 80. 27.] [183. 88. 28.] [159. 40. 29.] [164. 66. 32.] [166. 56. 42.]]
Bu verileri manuel olarak doldurabiliriz ama veri boyutu çok yüksek olduğunda bir strateji belirleyip otomatik yapmak en kolayıdır. Bunun için sklearn kütüphanesini kullanacağız.
Yükelemek için terminale yazın: pip install sklearn
Kod kısmı aşağıdaki gibidir.
# kütüphaneleri ekle import pandas as pd # verileri okumak için kullanılır import numpy as np # nümerik işlemler yapmak için kullanılır from sklearn.impute import SimpleImputer # verileri oku veriler = pd.read_csv('eksikveriler.csv') # eksik değerler için ortalama verisini yaz a imp = SimpleImputer(missing_values=np.nan, strategy='mean') # sayısal olan verileri sayısal olmayan verilerden ayır Yas = veriler.iloc[:,1:4].values print(Yas) # stratejiyi uygula imp.fit(Yas[:,1:4]) # alınan ortalama değerleri nan yerlerine yaz Yas[:,1:4] = imp.transform(Yas[:,1:4]) print(Yas)
İlk önce sadece sayısal verileri çekiyor. Sonra sklearn ile stratejimizi belirliyoruz. Bu strateji Nan değerleri yerine, sutundaki değerlerin ortalaması alınıp yazılması olarak ayarlıyoruz. Stratejimizi fit komutu ile uygulayıp transform komutu ile yüklemeyi yapıyoruz.
Sonuç:
[[130. 30. 10. ] [125. 36. 11. ] [135. 34. 10. ] [133. 30. 9. ] [129. 38. 12. ] [180. 90. 30. ] [190. 80. 25. ] [175. 90. 35. ] [177. 60. 22. ] [185. 105. 33. ] [165. 55. 27. ] [155. 50. 44. ] [160. 58. 28.45] [162. 59. 41. ] [167. 62. 55. ] [174. 70. 47. ] [193. 90. 28.45] [187. 80. 27. ] [183. 88. 28. ] [159. 40. 29. ] [164. 66. 32. ] [166. 56. 42. ]]
Kaynak: https://scikit-learn.org/stable/modules/generated/sklearn.impute.SimpleImputer.html
0 yorum