Veriyi Tanıyalım
Veri Setini İndir
Bu eğitimde kullanacağımız kirli veri setini customers_dirty.csv dosyasından indir. 35 satır, 13 kolondan oluşan uydurma müşteri verisi:
| Kolon | İçerik |
|---|---|
id |
Sıra numarası |
full_name |
Ad soyad |
email |
E-posta |
phone |
Telefon |
city, country |
Şehir ve ülke |
birth_date, registration_date |
Tarihler |
gender |
Cinsiyet |
occupation |
Meslek |
income |
Gelir |
subscriber |
Abone mi? |
score |
Puan (1-5 arası) |
İlk birkaç satıra göz at — büyük olasılıkla derin bir nefes vermen gerekecek. Sorun yok, biraz sonra hepsi temizlenecek.
Yeni Proje Oluştur
OpenRefine açıkken sol panelde Create Project sekmesine tıkla.
- This Computer seçili olsun.
- Browse… ile indirdiğin
customers_dirty.csvdosyasını seç. - Next → butonuna bas.
Açılan ekranda OpenRefine sana dosyayı nasıl ayrıştıracağını soruyor. Önemli ayarlar:
- Character encoding:
UTF-8(Türkçe ve uluslararası karakterler için). - Columns are separated by:
commas (CSV)seçili olsun. - Parse next 1 line(s) as column headers: İşaretli olmalı (ilk satır başlık).
- Trim leading & trailing whitespace from strings: İşaretleme! — Boşlukları biz bilerek temizleyeceğiz.
- Parse cell text into numbers, dates, …: İşaretleme! — OpenRefine’ın otomatik tip tahmini bizim öğrenmek istediğimiz şeyi atlar.
Eğitim amaçlı. Gerçek hayatta bu işaretleri açabilirsin — ama o zaman OpenRefine senin yerine bazı işleri yapar ve sen ne yaptığını öğrenemezsin. Şu an tüm değerlerin string olarak içeri girmesini istiyoruz.
Sağ üstte projenin adını yaz: customers cleaning gibi. Sonra Create Project » butonuna bas.
İlk Bakış
Karşına 35 satırlık tablo gelmeli. Hızlıca sorunlara bak:
genderkolonundaM,F,Male,Female,m,male,femalekarışık.subscriberkolonundaYes,No,1,Y,N,n,yeskarışık.countrykolonundaUSA,United States,FR,France,México,Mexicogibi tutarsızlıklar.citykolonunda büyük/küçük harf karmaşası ve başında/sonunda boşluk.birth_dateveregistration_datekolonlarında 5+ farklı format.incomekolonunda farklı para birimleri ve sayı formatları.phonekolonunda telefon numarası ne kadar farklı yazılabilirse.emailkolonunda eksik alanlar, çift@, eksik domain.- Bazı satırlar yinelenen (duplicate) kayıtlar.
Yapacağımız iş bu listeyi sırayla bitirmek.
Arayüzü Tanıyalım
Birkaç noktaya dikkat çekeyim, çünkü bunları sürekli kullanacağız:
Sol panel — Facet / Filter: Burada açtığımız her facet (filtre, gruplama) görünür. Bir kolonun tüm değerlerini sayılarıyla gözden geçirmek için kullanırız.
Üst sol — Undo / Redo: Yaptığın her işlem buraya kaydedilir. İstediğin adıma geri dönebilirsin. Bu OpenRefine’ın süper gücü.
Her kolon başlığında ▼ üçgen: Tıkladığında kolonla yapabileceğin her şeyin menüsü açılır:
- Facet: Filtre oluşturma
- Edit cells: Hücre içeriklerini değiştirme (en çok kullanacağımız menü)
- Edit column: Kolonu yeniden adlandırma, taşıma, silme
- Sort: Sıralama
Üst sağ — Export: İşin bittiğinde temizlenmiş veriyi indirme.
- Siyah, sola yaslı metin: String (metin)
- Yeşil, sağa yaslı metin: Number (sayı) veya Date (tarih)
Bir kolonu sayıya çevirdiğinde renginin değiştiğini göreceksin. Bu görsel ipucu, dönüşümün başarılı olduğunu hızlıca anlamak için çok değerli.
Çalışma Stratejimiz
Veri temizlerken takip edeceğimiz sıra:
- Kategorik kolonlar (cinsiyet, abone, ülke, şehir) — kolay başlangıç
- Sayısal kolonlar (puan, gelir) — GREL ifadelerini öğreniriz
- Telefon — regex pratiği
- Tarih —
toDateile çoklu format - E-posta — geçersiz kayıt tespiti
- Yinelenen kayıtlar — en son, çünkü diğer alanlar temizlendikten sonra duplicate’ler doğru görünür
Duplicate temizliğini en sona bırakmamızın sebebi şu: başlangıçta RAJESH Kumar ve Rajesh Kumar farklı görünüyor — küçük/büyük harfler temizlenmediği için duplicate facet onları yakalayamaz. Önce isimleri standartlaştırıp sonra duplicate aramak çok daha verimli.
Hadi ilk kategoriye geçelim.