Türkiye Koronavirüs verisi ile veri seti hazırlama
19 Aug 2021Blog’u yaratalı her ne kadar uzun zaman olsa da anca buraya yazabilecek birşeyler bulabildim, aslında alışkanlığı edineyim diye biraz da bu yazıyı yazıyorum, eminim birisinin işine yaracaktır.
Bir süredir verilerle ilgileniyorum ve şu anda dünyada süregelen bir COVID salgını mevcut. Bu verilerle ilgilendiğim sürede kaggle ile içli dışlı oldum ardından arama çubuğuna COVID ve Turkey kelimelerini yazdığımda çok birşey bulamadığımı fark ettim ve ilk datasetimi oluşturmak için yola koyuldum.
İlk olarak Türkiye’nin koronavirüs verisini almak için bir kaynak bulmamız gerekiyordu, bunun için yaklaşık 1 saat bakındım ancak tek ve en güvenli olarak bulduğum Sağlık Bakanlığı’nın verisi oldu. Site ilk baktığımda verileri toplamak çok kolay geldi çünkü ortada bir tablo vardı satırları topladığınızda elinizde veri setiniz oluyordu. Hemen request
kütüphanesi ile aşağıdaki kodu çalıştırdım.
Çalıştırdığımda gördüğüm şey tablonun doğal olarak boş olduğu ve bir jquery ile [CDATA] formatında veriyi tabloya işlediğiydi.
Şeklinde devam eden bir formu vardı, öncelikle tabii ki bu [CDATA]’yı almaya çalıştım fakat bunda başarılı olamadım ve forumlarda da benim BeautifulSoup ile ilgili aynı problemleri yaşayan insanlar gördüm. Bu noktada açıkcası sanırım tecrübesizliğimden ötürü aklıma çok da fazla seçenek gelmedi ve aklıma gelen en basit seçeneği uyguladım, Selenium kullandım. Bu sayede tüm javascriptler çalışacak ve veriler yerlerine oturacaktı.
Bu şekilde gereken kütüphaneleri içeri aktardım. Ardından sabitleri tanımladım.
Bundan sonrasında artık sürücümüzü çalıştırıp gereken verileri almamız gerek.
Yukarıda 1 saniye bekliyorum çünkü tüm yüklemeler anlık olarak gerçekleşmeyebilir. Bunun ardından aşağıdaki kodlar ile tüm satırların uzunluğunu alıyorum.
Açıkcası ben ilk bu işlemi yaparken bu XPATH’in alt XPATH’lerini alıcağından direkt bu işlemle tüm verileri çekebileceğimi düşünmüştüm, ama başaramadım ve her bir satırı tek tek almaya karar verdim;
Bunun ardından elimde satır satır alınmış bir list oldu, sonrasında ise bu listeyi direkt olarak pandas DataFrame’ine aktararak çıktı aldım.
Şu anda elimde tam bir tablo mevcut fakat boş kolonlarlardan boş veri çektiğimden bazı veriler boş, bunları np.nan
ile dolduralım ve son olarak csv çıktığımızı alalım.
Csv çıktımızı aldık! Bu sayede de blog yazımızın sonuna geldik. Dediğim gibi bloguma birşeyler eklemek için denediğim ilk sunumlardan biri,umarım faydalı olmuştur.
Veri setine ulaşmak isterseniz bu link üzerinden ulaşabilirsiniz.