Veri Bilimi & Veri Manipülasyonu - Keşfedici Veri Analizi
Tips Veri Seti EDA
Yazar:
Enes ASAN
Yayın tarihi :23-Ara-21
Bölüm kodlarını ve/veya veri setlerini indir.
Tips veri seti ile ilgili keşfedici veri analizi yapılmıştır. Tips veri setinin hikayesi: Garsonlar tarafından alınan bahşişlerin gün veya yemek öğününe göre değişimini anlatan 244 satırlık bir veri setidir.
**Not: Verileri grafikselleştirdiğimiz alanda bilmediğiniz grafik şekilleri olabilir. Grafik çizimleri için ileriki konuda Veri Görselleştirmesi adı altında detaylı olarak anlatılmıştır.
import pandas as pd
import numpy as np
import seaborn as sns
#tips veri seti seaborn kütüphanesi altında bulunmaktadır, oradan erişip df e eşitleyelim.
df=sns.load_dataset("tips")
EDA
df.head()
Çıktı:
df.tail()
Çıktı:
df.sample(3)
Çıktı:
df.shape
Çıktı:
(244, 7)
df.info()
Çıktı:
<class 'pandas.core.frame.DataFrame'> RangeIndex: 244 entries, 0 to 243 Data columns (total 7 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 total_bill 244 non-null float64 1 tip 244 non-null float64 2 sex 244 non-null category 3 smoker 244 non-null category 4 day 244 non-null category 5 time 244 non-null category 6 size 244 non-null int64 dtypes: category(4), float64(2), int64(1) memory usage: 7.4 KB
df.isnull().sum()
Çıktı:
total_bill 0 tip 0 sex 0 smoker 0 day 0 time 0 size 0 dtype: int64
df.corr()
Çıktı:
sns.heatmap(df.corr(),annot=True)
Çıktı:
df.describe()
Çıktı:
Düzenleme ve verileri grafiklendirme
df.total_bill.plot.box()
#grafik üzerinden de görüldüğü gibi "o" ile gösterilen alanlar outlier(aykırı değer)'dir.
#Ama fazla yüksek değerde olmadığından düzenleme yapılmayabilir, veya aykırı değerler çıkartılabilir.
Çıktı:
df.tip.plot.box()
#grafik üzerinden de görüldüğü gibi "o" ile gösterilen alanlar outlier(aykırı değer)'dir.
#7 değerinden sonra oluşan outlier değerlerini veri setinden kaldıralım
Çıktı:
#outlier değerlerden bazıları kaldırıldı.
df=df[df.tip<7]
df.tip.plot.box()
Çıktı:
df.sex.value_counts().plot.bar()
Çıktı:
df.smoker.value_counts().plot.bar()
Çıktı:
#smoker değerlerini sayısal olarak dönüşüm yapabiliriz.
df.smoker=df.smoker.map(lambda x:0 if x=="No" else 1)
df.smoker=df.smoker.astype(int)
df.smoker.value_counts().plot.bar()
Çıktı:
df.day.value_counts().plot.bar()
Çıktı:
df.time.value_counts().plot.bar()
Çıktı:
df["size"].plot.density()
Çıktı:
#df son durumda
df.head()
Çıktı:
#bazı outlier değerleri çıkarttığımız için veri seti boyutu da düştü
df.shape
Çıktı:
(241, 7)
df.info()
Çıktı:
<class 'pandas.core.frame.DataFrame'> Int64Index: 241 entries, 0 to 243 Data columns (total 7 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 total_bill 241 non-null float64 1 tip 241 non-null float64 2 sex 241 non-null category 3 smoker 241 non-null int32 4 day 241 non-null category 5 time 241 non-null category 6 size 241 non-null int64 dtypes: category(3), float64(2), int32(1), int64(1) memory usage: 17.7 KB