Python ile İBB Açık Veri Portalı’ndaki verileri görselleştirme(Data Visualization with Python on İBB API)

Arda Batuhan Demir
5 min readFeb 2, 2020

--

Ülkemizde ve dünyada artan şehir nüfusu ile birlikte, artan nüfusun çıkardığı konut,altyapı,ulaşım,eğitim ve bir çok alanda ortaya çıkan sorunlar ve tükenmekte olan enerji kaynaklarını belirli düzeyde kullanma ihtiyacı kent yönetimlerini ve teknolojinin sunduğu imkanları daha fazla kullanmaya sevk etmektedir…

Günümüzde başta metropol şehirlerin, elektronik ortamda sundukları hizmetlerin sayısı her geçen gün artmakla beraber, yerel hizmetlerin sunumunda teknolojiyi en iyi şekilde kullanan belediyeler, kent yönetimi için ‘akıllı şehircilik’ kavramını ön plana çıkarmaktadır.

Akıllı Şehirciliğin ön plana çıktığı son günlerde, Aralık 2019 itibari ile İstanbul Büyükşehir Belediyesi, Açık Veri Portal’ını yayına alması ile beraber, veri setleri aracılığı ile İstanbul’a dair pek çok veri herkesin kullanımına açılmış oldu.

Akıllı şehircilik kapsamında önemli bir gelişme olarak nitelendirilen ve kayıtlara geçen yenilik ile birlikte İBB elindeki verileri kullanıma sunmuş oldu.

data.ibb.gov.tr adresinden erişilebilen açık veri portalında, farklı kategorilerde ve farklı erişim araçlarıyla beraber veri setleri hali hazırda bulunmakta…

Çevre,Enerji,Yaşam ve Ekonomi gibi bir çok kategori başlıkları altında sunulan veri setleri ile beraber, hali hazırda güncel olarak 86 veri seti bulunmakta…

Bu yazıda ise,Python ve veri biliminde en çok kullanılan kütüphaneler ile beraber demo bir çalışma yapacağız

1)İBB Açık Veri Portalına Erişim ve Python kütüphaneleri kullanımı

İlk olarak, İstanbul Büyükşehir Belediyesi’nin yayına aldığı ‘İBB Açık Veri Portalı’na erişmek için data.ibb.gov.tr adresine gidiyoruz…

Yukarıda bulunan ‘Veri Setleri’ bölümüne tıklayarak, İBB’nin kullanıma açtığı veri setlerine erişim sağlıyoruz

Veri setleri içerisinde bugün,’İstanbul Genel Yeşil Alan Bilgiler 2004–2019’ adlı verisetine ulaşmak için üzerine tıkladığımızda, veri seti hakkındaki genel bilgilere ve İBB’nin sağladığı API’ye ulaşabiliyor olacağız…Dinamik olarak doğrudan doğruya Python üzerinde verileri görmek ve görselleştirebilmek adına; Aşağıdaki gibi ‘Veri Adresini Kopyala’ butonuna tıklayıp, İBB’nin online olarak erişim imkanı sağladığı excel veri setine erişim sağlamak için veri adresini almış oluyoruz…

2)Python ile erişim sağlama

Python ile İBB verilerine erişim sağlayabilmek ve görselleştirebilmek adına iki kütüphaneden bahsediyor olacağız:

import pandas as pd
import matplotlib.pyplot as plt

2.1)Pandas ve DataFrame nedir ?

Pandas python programlama dili için yüksek performanslı, kullanımı kolay veri yapıları ve veri analiz araçları sağlayan açık kaynaklı bir BSD lisanslı kütüphanedir. Csv ve text dosyalarını açmaya ve içerisinde bulunan verileri okuyarak istenen sonuca kolayca ulaşmak için kullanılmaktadır. Yani bir excel dosyasını açarak içerisinde bulunan bir sütunu veya satırı seçerek işlemleri yapabiliriz. Numpy kütüphanesinde yapılan verilerin şekillendirilmesi daha detaylı bir biçimde kullanılabilmektedir…DataFrame ise farklı tipteki sütunlara ve satırlara sahip olan bir SQL tablosu olarak düşünmek mümkün, verileri daha kolay işleyebilmemizi sağlamakta…

2.2)Matplotlib nedir ?

Matplotlib grafik çizim paketi Python’la bilimsel programlamanın en önemli araçlarından birisidir. Çok kuvvetli bir paket olan Matplotlib ile verileri etkileşimli olarak görselleştirebilir, yayınlamaya uygun yüksek kalitede çıktılar hazırlayabiliriz. Hem iki boyutlu hem de üç boyutlu grafikler üretilebilir.

Önceki yazılarımda olduğu gibi Jupyter Notebook üzerinden Python’ı kullanmaya devam edeceğim, yukarıdaki bahsettiğim iki kütüphane local’inizde mevcut değilse, pip install <paket_adı> ile kütüphaneleri doğrudan indirmek mümkün olacaktır.

Yukarıda sözünü ettiğimiz gerekli olan 2 Python kütüphanesini import ettikten sonra, elimizde bulunan ve İBB Açık Veri Portalı’ndan aldığımız veri adresini url objesine assign ediyoruz.

url = “https://data.ibb.gov.tr/dataset/79f32560-ea6b-4825-8178-24b4edbfa615/resource/d6527f7d-07b4-4dd9-aa09-76e92d86526a/download/istanbul-genel-yeil-alan-bilgiler-2004-2019.xlsx

Veri adresi uzantısına baktığımızda bize bir Excel Sheet’i sağlamakta, bu excel sheet’ini DataFrame’e çevirebilmek için pandas’ın read_excel modülünü kullanıyoruz..(Burada dikkat edilmesi gereken nokta, veri setine doğrudan erişim yapabilmek için,excel sheet/sheet’lerinin isimlerine dikkat etmemiz ve tanımlamamız gerekmekte…Data objesini çağırdığımızda, output olarak artık elimizde bir DataFrame bulunmakta..

DataFrame’in son sutünuna dikkat etmek gerekir ise ‘TOPLAM’ adında bir yapılan işlerin her satırdaki toplamı bulunmakta, fakat bu sütünü kullanmak istemiyoruz çünkü Toplam değerine şu an için ihtiyacımız bulunmamakta…

‘TOPLAM’ adındaki sütünü elimizde bulunan DataFrame’den çıkarmak için Pandas’da sıklıkla kullanılan ‘drop’ argümanına erişeceğiz bu yüzden ‘TOPLAM’ sütununu bir objeye atayıp, elimizde bulunan hali hazırdaki DataFrame’den çıkarmış olacağız..Drop etme işlemleriyle Python kod bloğumuza devam ediyoruz…

Data adlı DataFrame’i çağırdığımızda ‘TOPLAM’ sütununun çıkarıldığını görmekteyiz..Fakat işlemlerimiz dolayısıyla da hali hazırda elimizde bulunan DataFrame Veri Görselleştirmek için elverişli değil!….Dikkatli bakıldığında Faaliyet Konularının Sutünlar olarak yer alması ve Yılların da satırlar olarak yer alabilmesi gerekmektedir…Elimizde bulunan tablonun bir ‘matris’ olduğunu kabul edebilirsek, bir matrisin tersini almamız durumunda istediğimiz formata çevirebilmiş olacağız…Literatür’de ve Matematik’de bir matrisin tersini alabilmek için ‘transpoze(transpose)’ işlemini uygulamamız gerekir…Aşağıda yer alan kod bloğunda elimizde bulunan DataFrame’in yani matris’in, tersini diğer bir adıyla Transpose’sini almak için gerekli işlemleri uyguluyoruz…

Sonuç yukarıdaki resimdeki gibi olacaktır…İlk satır String ifadeler taşıdığından dolayı ve sutünlar numeric olarak tekrardan yerleştiğinden dolayı matematiksel işlemleri yapabilmek adına, ilk satırı yani ‘Faaliyet Konusu’ adlı satırı işleme sokmayacağız(Numeric olarak isimlendirilen satırların ismi değiştirilebilir…)

Yıllara göre yapılan faaliyet konularını artık görselleştirmeye hazır durumdayız…Görselleştirmede yukarıda sözünü etmiş olduğum matplotlib kütüphanesinin default bir plot grafiği ile beraber, ‘Yeni Yapılan Yeşil Alan (1 numaralı sütun) ve Revize edilen Yeşil Alan( 2 numaralı sutün)’ ile yıllara göre değişimini görselleştireceğiz…

Yukarıdaki grafikte gördüğünüz gibi 1 numaralı faaliyet konusunu ve 2 numaralı faaliyet konusunun yıllara göre değişimini görmekteyiz…Başlarda Yeni yapılan ve Revize edilen yeşil alanların yıllar geçtikçe azalışını görebilmemiz mümkün…

Takipte Kalın…

--

--

Arda Batuhan Demir
Arda Batuhan Demir

Written by Arda Batuhan Demir

5x AWS Cert* | Senior DevOps Engineer | Cloud Architect | AWS Community Builder

Responses (1)