Python Data Science Libraries 1 – Pandas Methodology

I am putting the topics I have been working on into a series that I will tell you one by one. For this reason, I will explain the methodology and usage aspects of almost all libraries that I am actively working on. I’ll start with pandas, which allows functional operations such as data preprocessing without reading data first. With this library, we can easily perform data pre-processing steps, which are vital steps for data science, such as observing missing data and extracting that data from the data set. In addition, you can bypass data types and the front part of numerical or categorical operations that you will do on them. This provides us with significant convenience before proceeding. Each library in Python has its own specialties, but speaking for pandas, it is responsible for all of the pre-part modifications to the data to form the basis of the data science steps. Data classification processes in Pandas can be designed and activated quickly with a few functional codes. This is the most critical point in the data preprocessing stage, in the previous steps of data modeling.

 

 

We can store the data as “dataframe” or “series” and perform operations on it. The fact that Pandas library performs every operation on data in a functional, easy and fast way reduces the workload in data science processes on behalf of data scientists. In this way, it can handle steps such as the beginning and most difficult part of the process, such as data preprocessing, and focus on the last steps of the job. By reading data such as .csv, .xlsx, .json, .txt prepared in different types, it takes the data that has been entered or collected through data mining into python to process. Pandas library, which has the dataframe method, is more logical and even sustainable than other libraries in terms of making the data more functional and scalable. Those who will work in this field should work on the methodology of pandas library, which has the basic and robust structure of the python programming language, not to write code directly. Because new assignments on the data, column names, grouping variables, removing empty observations from the data or filling empty observations in a specific way (mean, 0 or median assignment) can be performed.

 

 

Data cannot be processed or analyzed before the Pandas library is known. To be clear, the pandas library can be called the heart of data science. Specially designed functions such as apply (), drop (), iloc (), dtypes () and sort_values ​​() are the most important features that make this library exclusive. It is an indispensable library for these operations, even if it is not based here on the basis of its original starting point. In the steps to be taken, it has a structure with tremendous features and a more basic case in terms of syntax. It is possible to host the results from the loops in clusters and convert them into dataframe or series. The acceleration of the processes provides a great advantage in functional terms if the project that will emerge has a progressing process depending on time, which is generally the case. Looking at its other possibilities, it is one of the most efficient libraries among the python libraries. The fact that it is suitable for use in many areas can be considered as a great additional feature. Pandas is among the top 3 libraries in the voting among data processing libraries made by software developers using the python programming language. You can reach this situation, which I quoted with datarequest in the sources section.

 

 

The concept of “data science”, which has been developing since 2015, has brought the pandas library to the forefront and this library, which has been developing in silence for years, has come to light. After Pandas, I will explain numpy and talk about numerical and matrix operations. In general, Pandas is a library that has high-level features in basic data analysis and data processing. In addition, if you specify the topics you will talk about and the things you want me to mention, I will draw a more solid way in terms of efficiency. I hope these articles that I will publish in series will help people who will work in this field. In the future, I will add the cheatsheet style contents that I will prepare on github to the bibliography section. If you want to take advantage of such notes, I will put my github account in the resource section, and you can easily access there.

 

 

References:

https://www.geeksforgeeks.org/python-pandas-dataframe/

https://medium.com/deep-learning-turkiye/adan-z-ye-pandas-tutoriali-ba%C5%9Flang%C4%B1%C3%A7-ve-orta-seviye-4edf0094e0d5#:~:text=Pandas%2C%20Python%20programlama%20dili%20i%C3%A7in,sonuca%20kolayca%20ula%C5%9Fmak%20i%C3%A7in%20kullan%C4%B1lmaktad%C4%B1r.

https://www.dataquest.io/blog/15-python-libraries-for-data-science/

https://github.com/tanersekmen/

https://www.edureka.co/blog/python-pandas-tutorial/

https://globalaihub.com/importance-of-data-quality-and-data-processing/

https://globalaihub.com/hareketli-ortalama-algoritmasiyla-al-sat-tavsiyeleri/

https://www.dataquest.io/course/pandas-fundamentals/Python Data Science Libraries 1 – Pandas Methodology

Python Veri Bilimi Kütüphaneleri 1 – Pandas Metodoloji

Üzerinde çalıştığım konuları, sizlere de tek tek anlatacağım bir seri haline getiriyorum. Bu sebeple, aktif olarak üzerinde çalıştığım hemen hemen tüm kütüphanelerin metodolojisini ve kullanım yönlerini anlatacağım. Önceliği veri okumadan veri ön işleme gibi fonksiyonel işlemlere izin veren pandas ile başlayacağım. Eksik verilerin gözlenmesi ve o verilerin veri seti içerisinden çıkartma işlemi gibi veri bilimi için hayati önemi olan adımları, bu kütüphane sayesinde veri ön işleme adımlarını rahatlıkla gerçekleştirebiliriz. Ek olarak veri tiplerini ve onların üzerinde yapacağınız, sayısal ya da kategorik işlemlerin ön kısmını bu şekilde atlatabilirsiniz. Bu da yapılacak işlemlerin öncesinde bize önemli anlamda kolaylık sağlar. Python içerisinde bulunan her kütüphanenin kendine has özellikleri bulunmaktadır fakat pandas için konuşmak gerekirse, veri bilimi adımlarının temelini oluşturmak için verinin üzerinde yapılacak ön parça değişikliklerin tamamından sorumludur. Pandas içerisinde veriyi sınıflama işlemleri de birkaç fonksiyonel kod ile hızlıca tasarlanıp aktif hale getirilebilir. Bu da veri ön işleme aşamasında, veriyi modellemenin önceki adımlarında en kritik noktadır.

 

 

Veriyi, ‘dataframe’ ya da ‘series’ halde saklayabilir ve üzerinde işlemleri yapabiliriz. Pandas kütüphanesinin veri üzerinden yapılacak her işlem fonksiyonel, kolay ve hızlı bir şekilde yapması, veri bilimciler adına veri bilimi süreçlerinde iş yükünü azaltmaktadır. Bu sayede, sürecin başlangıç ve en zor kısmı olan veri ön işleme gibi adımları halledip işin son adımlarına odaklanabilir. Farklı türde hazırlanmış .csv, .xlsx, .json, .txt gibi verileri okuma işlemleri yaparak, girişi yapılmış ya da veri madenciliği sayesinde toplanmış verileri işlem yapmak için python bünyesine alır. Dataframe metoduna sahip olan pandas kütüphanesi, veriyi daha işlevsel ve ölçeklenebilir hale getirme konusunda diğer kütüphanelere göre daha mantıklı hatta sürdürülebilirdir. Bu alanda çalışacak kişiler, direkt olarak kod yazmak için değil bu gibi temel anlamda python programlama dilinin temel ve sağlam yapısına sahip pandas kütüphanesinin metodolojisi üzerine çalışmalıdır. Çünkü veri üzerinde yeni atamalar, kolon isimleri, değişkenleri gruplama, verideki boş gözlemleri veriden çıkarmak ya da boş gözlemleri belirli bir şekilde doldurma işlemleri (ortalama, 0 ya da medyan ataması) yapılabilir.

 

 

Pandas kütüphanesi bilinmeden verilerin üzerinde işlem ya da herhangi bir analiz yapılamaz. Açıkça belirtmek gerekirse, pandas kütüphanesi veri biliminin kalbi denilebilir. Özel olarak tasarlanmış apply(), drop(), iloc(), dtypes() ve sort_values() gibi fonksiyonlar, bu kütüphaneyi ayrıcalıklı kılan en mühim özelliktir. Asıl çıkış noktası temelinde buraya dayanmasa bile, bu işlemler için vazgeçilmez bir kütüphanedir. Yapılacak adımlarda, muazzam özelliklere sahip bir yapıya ve sözdizimi anlamında daha temel bir durumdadır. Döngülerden çıkan sonuçların da kümeler içinde barındırılıp onları dataframe ya da series haline dönüştürmeniz mümkündür. İşlemlerin hızlanması, ortaya çıkacak olan projenin zamana bağlı olarak ilerleyen bir süreci varsa ki genelde böyledir, fonksiyonel anlamda büyük avantaj sağlar. Diğer imkanlarına bakınca ise, python kütüphaneleri arasında verim seviyesi en yüksek kütüphanelerden birisidir. Birçok alanda kullanıma elverişli olması, müthiş bir ek özellik olarak değerlendirilebilir. Pandas, python programlama dilini kullanan yazılımcılar tarafından yapılan veri işleme kütüphaneleri arasındaki oylamada ilk 3 kütüphane arasındadır. Kaynaklar kısmında datarequest ile alıntıladığım bu duruma ulaşabilirsiniz.

 

 

2015 yılından bu yana gelişen ‘veri bilimi’ kavramı, pandas kütüphanesini de ön plana çıkarmaya ve yıllarca sessizlik içerisinde gelişimi sürdüren bu kütüphanenin gün yüzüne çıkmasına ön ayak oldu. Pandas sonrası, numpy anlatacağım ve onun hakkında yapılan numerik, matris işlemlerinden bahsedeceğim. Pandas genel anlamda bu şekilde temel anlamda veri analizi ve veri işleme konusunda üst düzey özelliklere sahip bir kütüphanedir. Ek olarak bahsedeceğiniz konular ve değinmemi istediğiniz şeyler varsa belirtirseniz verim anlamında daha sağlam bir yol çizmiş olurum. Seri halinde yayınlayacağım bu yazıların umarım bu alanda çalışacak kişilere yardımı dokunur. İlerleyen süreçlerde github üzerinden hazırlayacağım cheatsheet tarzı içerikleri de kaynakça kısmına ekleyeceğim. Eğer siz de bu gibi notlardan yararlanmak isterseniz, github hesabımı kaynak kısmına koyacağım oradan rahatlıkla ulaşabilirsiniz.

 

 

References:

https://www.geeksforgeeks.org/python-pandas-dataframe/

https://medium.com/deep-learning-turkiye/adan-z-ye-pandas-tutoriali-ba%C5%9Flang%C4%B1%C3%A7-ve-orta-seviye-4edf0094e0d5#:~:text=Pandas%2C%20Python%20programlama%20dili%20i%C3%A7in,sonuca%20kolayca%20ula%C5%9Fmak%20i%C3%A7in%20kullan%C4%B1lmaktad%C4%B1r.

https://www.dataquest.io/blog/15-python-libraries-for-data-science/

https://github.com/tanersekmen/

https://www.edureka.co/blog/python-pandas-tutorial/

https://globalaihub.com/importance-of-data-quality-and-data-processing/

https://globalaihub.com/hareketli-ortalama-algoritmasiyla-al-sat-tavsiyeleri/

https://www.dataquest.io/course/pandas-fundamentals/

Python ile Veri Analizi ve Görselleştirme – 2

Bir önceki yazımda kullandığım Iris veri seti üzerinde görselleştirme yapmaya devam ediyoruz. Veri görselleştirme için en sık kullanılan 2 adet kütüphane vardır. Bu kütüphanelerden matplotlib tıpkı benim bildiğim gibi birçok kişi tarafından bilinmektedir. Bunun yanı sıra 2. kütüphanemiz ise seaborn olmaktadır. Bu yazıda verilerin kütüphaneler yardımı ile görselleştirilmesine tanıklık edeceğiz.

🔐 Kullandığım Colab bağlantısı için linke girmeniz gerekmektedir.

Veri Görselleştirme Kütüphaneleri

1. Seaborn: Statistical Data Visualization Library ( İstatistiksel Veri Görselleştirme Kitaplığı )

Seaborn, Matplotlib tabanlı bir Python veri görselleştirme kitaplığıdır . Çekici ve bilgilendirici istatistiksel grafikler çizmek için üst düzey bir arayüz sağlar. Paketi nasıl indirebileceğinizi ve kullanmaya başlayabileceğinizi görmek için kurulum sayfasını ziyaret ediniz.

Seaborn

Matplotlib’ e göre farkı daha fazla özelleştirme seçeneğinin olması diyebiliriz.

Seaborn SamplesYukarıda yer verdiğim görselde Seaborn sayesinde verileri nasıl görselleştirebileceğimizi görmekteyiz. Birçok farklı grafik ve formlarda verilerimizi sergilememiz mümkün.

2. Matplotlib: Visualization with Python

Matplotlib; Python’da statik, animasyonlu ve etkileşimli görselleştirmeler oluşturmak için kapsamlı bir kütüphanedir.

Matplotlib Logo

Matplotlib orijinal olarak John D. Hunter tarafından yazılmıştır , o zamandan beri aktif bir geliştirme topluluğuna sahiptir. 

Seaborn Samples

Aynı şekilde burada verdiğim görselde ise Matplotlib ile yapılabilecek görselleştirme formları bulunmaktadır.

🧷 Matplotlib kitaplığındaki plot yani grafikleri incelemek için bağlantıya tıklayınız.

  • Line Plots ( Çizgi Grafikleri): İki değişken arasındaki ilişkiyi çizgiler halinde göstermektedir.

Line plots

  • Scatter Plots ( Dağılım Grafikleri ): İki değişken arasında var olan bu ilişkiyi isminden de anlaşılacağı üzere dağıtık noktalar halinde gösterilmektedir.

Scatter Plots

✨ Iris veri setinde yer alan değişkenlerin birbirleri ile olan ilişkisini ölçmek adına seaborn kütüphanesini kullanmak istedim.

Uploading Seaborn

Seaborn kütüphanesini projemize dahil ettikten sonra çeşitli parametreleri girerek grafiğin oluşmasını sağlamaktayız. Burada dataframe üzerinden sepal_length ve petal_width öznitelikleri arasındaki ilişkinin karşılaştırılmasını gerçekleştirdik. cmap değişkeni ise grafiğimizde kullandığımız renk paletinin belirlendiği değişkendir. İsteğe göre değiştirilebilmektedir. s değişkeni ise burada noktalar halinde verilen scatter grafiğindeki noktaların büyüklüğünü belirtmektedir.

Data Visulatizaton

Bir yazının daha sonuna gelmiş bulunmaktayız. Sağlıcakla kalın ✨

REFERANSLAR

  1. https://seaborn.pydata.org.
  2. https://matplotlib.org.
  3. Machine Learning Days | Merve Noyan | Data Visualization | Study Jams 2 |, https://www.youtube.com/watch?v=JL35pUrth4g&t=640s.
  4. Matplotlib, Wikipedia, The Free Encyclopedia, https://en.wikipedia.org/wiki/Matplotlib.
  5. https://jakevdp.github.io/PythonDataScienceHandbook/04.02-simple-scatter-plots.html.
  6. https://jakevdp.github.io/PythonDataScienceHandbook/04.01-simple-line-plots.html.
  7. https://matplotlib.org/3.1.1/tutorials/colors/colormaps.html.

Data Analysis and Visualization with Python

Hello, one more beautiful day! In this article, we will continue to code Python with you. So what are we doing today? We will talk about one of my favorite topics, data analysis. You can get your data set from data sites such as Kaggle or UCI. In addition to these, I did research on Iris Flower Data Set and chose it for you.

The Iris flower dataset is a multivariate dataset presented by the British statistician and biologist Ronald Fisher in his 1936 article on the use of multiple measures in taxonomic problems. It is sometimes referred to as the Anderson Iris dataset because Edgar Anderson collected data to measure the morphological variation of Iris flowers of three related species. The dataset consists of 50 samples from each of the three Iris species (Iris Setosa, Iris virginica and Iris versicolor).

Four properties were extracted from each sample:

    1. The length of the sepals in centimeters
    2. The width of the sepals in centimeters
    3. The length of the petals in centimeters
    4. The width of the petals in centimeters

This dataset becomes a typical test case for many statistical classification techniques in machine learning, such as support vector machines.

Iris dataset

The visual you see above is also included in the notebook I created in Colab. In this visual, we see examples from the data set. You can access it via the Colab link at the end of the article. It is already in the literature as one of the most frequently and fundamentally used data sets in the field of data science.

STEPS

✨ The necessary libraries must be introduced in Colab and then the path of the data set in the folder must be specified. Then you can print the df variable to see the data set content or use the df.head( ) command to access the first 5 lines.

Veri kümesini ve kitaplıkları içe aktarma

Veri Kümesini İncele

✨ If you wish, let’s run the df.head( ) command and see how we will get an output.

Baş Komuta

✨ We include the values of the features in the data set above. Variables like sepal_length and petal_width are numerical variables. In addition, the feature of the flower type referred to as species is referred to as a categorical variable. First of all, it is useful to know which type of variable this data falls into.

⚠️ If it is desired to estimate the categorical data, namely the type of flower from the numerical variables (features between sepal_length and petal_width), this is a classification problem.

Descriptive Statistics

✨ Descriptive statistics are printed with Pandas’ describe method. If you want to follow, you can access the original documents of Pandas. In this way, how much data each feature contains – it is possible to see the lost data – it is informed. Standard deviation, average, minimum and maximum values of the properties are seen.

Describe Method

For example, in these data, the sepal_length feature is specified as 150000 lines in total and the standard deviation of these values is approximately 0.83.

⏳ The 25% and 75% range are known as Quartiles. By controlling these values, data can be analyzed.

✨ To get information about the data set, df.info( ) command should be run.

According to this information, we see that there is no row with an empty value. In addition to these, we also know that the features that exist numerically have float type.

✨ The df.isna( ) command checks if there is missing data (Not a Number) in the data set. We expect the row with the missing data to be ‘True’. However, as we have seen above, we do not have any lost data.

NaN Any

✨ The df.isna( ).any( ) command returns True if the data set contains even 1 missing data while checking lost data.

Not a Number Value

🖇 NOTE: Click on the link for the Colab link I mentioned above.

In the second article of the series, I will refer to the small points in the data analysis and the visualization area. Stay healthy ✨

REFERENCES

  1. https://pandas.pydata.org/pandas-docs/stable/index.html.
  2. https://www.kaggle.com/arshid/iris-flower-dataset.
  3. Machine Learning Days | Merve Noyan | Data Visualization | Study Jams 2 |, https://www.youtube.com/watch?v=JL35pUrth4g.
  4. https://www.kaggle.com/peterchang77/exploratory-data-analysis.

 

Python ile Veri Analizi ve Görselleştirme

Güzel bir günden daha merhaba! Bu yazıda sizler ile birlikte Python kodlamaya devam edeceğiz. Peki bugün neler yapıyoruz? En sevdiğim konulardan biri olan veri analizine birlikte deyineceğiz. Veri setinizi Kaggle veya UCI gibi veri sitelerinden temin edebilirsiniz. Bunların yanı sıra Iris Çiçek Veri Seti hakkında araştırma yapıp sizler için seçtim.

Iris çiçeği veri seti, İngiliz istatistikçi ve biyolog Ronald Fisher tarafından 1936’daki taksonomik problemlerde çoklu ölçümlerin kullanımı adlı makalesinde sunulan çok değişkenli bir veri setidir. Bazen Anderson Iris veri seti olarak adlandırılır çünkü Edgar Anderson, üç ilgili türün Iris çiçeklerinin morfolojik varyasyonunu ölçmek için verileri toplamıştır. Veri seti, üç Iris türünün (Iris Setosa, Iris virginica ve Iris versicolor) her birinden olmak üzere 50 örnekten oluşur.

Her numuneden dört özellik çıkarılmıştır:

    1. çanak yaprakları santimetre cinsinden uzunluğu
    2. çanak yaprakları santimetre cinsinden genişliği
    3. taç yapraklarının santimetre cinsinden uzunluğu
    4. taç yapraklarının santimetre cinsinden genişliği

Bu veri kümesi, destek vektör makineleri gibi makine öğreniminde birçok istatistiksel sınıflandırma tekniği için tipik bir test senaryosu haline gelmektedir.

Iris veri kümesi

Yukarıda gördüğünüz görsel Colab’da oluşturduğum not defteri içerisinde de yer almaktadır. Bu görselde veri setinden örnekler görmekteyiz. Yazının sonunda yer alan Colab linki üzerinden erişim sağlayabilirsiniz. Zaten veri bilimi alanında en sık ve temel olarak kullanılan veri setlerinden bir tanesi olarak literatürde yer almaktadır.

ADIMLAR

✨ Colab’ da gerekli kütüphaneler tanıtılmalı ve ardından klasör içerisinde yer alan veri setinin yolunun belirtilmesi gerekmektedir. Ardından veri seti içeriğini görmek için df değişkenini yazdırabilir veya ilk 5 satırına erişmek için df.head( ) komutunu kullanabilirsiniz.

Veri kümesini ve kitaplıkları içe aktarma

Veri Kümesini İncele

✨ Dilerseniz df.head( ) komutunu da çalıştırıp nasıl bir çıktı alacağız birlikte görelim.

Baş Komuta

✨ Yukarıda veri setinde yer alan özelliklerin değerlerine yer vermekteyiz. sepal_length ve petal_width gibi değişkenler numerical (sayısal) değişkenlerdir. Bir de bunun yanı sıra species olarak geçen çiçek türü özelliği ise categorical (kategorik) değişken olarak geçmektedir. Öncelikli olarak bu verilerin hangi değişken türüne girdiğini bilmekte fayda var.

⚠️ Eğer burada yer alan sayısal değişkenlerden (sepal_length ve petal_width arası özellikler) kategorik verinin yani çiçek türünün tahmini yapılmak isteniyorsa bu bir sınıflandırma problemidir.

✨ Pandas’ ın describe metodu ile tanımlayıcı istatistikler yazdırılmaktadır. Takip etmek isterseniz Pandas’ ın orijinal dokümanlarından erişebilirsiniz. Bu şekilde her özellik ne kadar veri içeriyorsa -kayıp verileri de görmemiz mümkün- bunun bilgilendirmesi yapılmaktadır. Özelliklerin standart sapması, ortalaması, minimum ve maksimum değerleri görülmektedir.

Describe Method

Örneğin bu veriler içerisinde sepal_length özelliği toplam 150000 satır ve bu değerlerin standart sapması ise yaklaşık olarak 0.83 olarak belirtilmiştir.

⏳ 25% ve 75% aralığı ise Quartile (Çeyrekler Aralığı) olarak bilinmektedir. Bu değerler kontrol edilerek verinin analizi yapılabilmektedir.

✨ Veri seti hakkında bilgi almak için ise df.info( ) komutu çalıştırılmalıdır.

Bu bilgilere göre boş değer olan satır bulunmamakta olduğunu görüyoruz. Bunların yanı sıra sayısal olarak var olan özelliklerin float tipine sahip olduğunun da bilgisine sahip oluyoruz.

df.isna( ) komutu veri setinde kayıp veri (Not a Number) olup olmadığını kontrol etmektedir. Kayıp verinin olduğu satırın ‘True’ olmasını beklemekteyiz. Ancak yukarıda gördüğümüz gibi kayıp verimiz bulunmamaktadır.

NaN Any

df.isna( ).any( ) komutu ise veri setinde kayıp veriler kontrol edilirken 1 adet bile kayıp veri içeriyor ise True olarak dönmektedir.

Not a Number Value

🖇 NOT: Yukarıda sözünü ettiğim Colab bağlantısı için bağlantıya tıklayınız.

Serinin 2. yazısında ise veri analizinde kalan ufak noktalara ve görselleştirme alanına deyineceğim. Sağlıcakla kalın ✨

REFERANSLAR

  1. https://pandas.pydata.org/pandas-docs/stable/index.html.
  2. https://www.kaggle.com/arshid/iris-flower-dataset.
  3. Machine Learning Days | Merve Noyan | Data Visualization | Study Jams 2 |, https://www.youtube.com/watch?v=JL35pUrth4g.
  4. https://www.kaggle.com/peterchang77/exploratory-data-analysis.

 

 

Veri Bilimcinin Mutlaka Bilmesi Gereken Sql ve Pandas Kodları

Bundan 15-20 yıl önce yazılım dünyasında belli başlı yeteneklere sahip olmak, bir kaç program bilmek işinizi oldukça kolaylaştırıyor ve yetkinlik sağlıyordu. Bugün geldiğimiz noktada ise tek bir program ya da becerinin yanında bir çok alanda, farklı özellik sahibi olmak ve farklı program dilleri bilmek kişiyi ön plana çıkarmaktadır.

SQL (Structured Query Language) sorgu dili geçmişte ve günümüzde hala önemini korusa da, özellikle yapay zeka ve makine öğrenmesi gibi alanların yaygınlaşması sonucunda Python’da kullanılan Pandas kütüphanesi ön plana çıkmaya başlamıştır.

Bu yazımda temel veri keşfi analizinde kullanılan kodların SQL ve Pandas da nasıl yazıldığını inceleyeceğiz. Analiz boyunca buradaki  Airports datasını kullanacağız. Airports datasının csv dosyasını SQL’e ve Pandas’a yükledikten sonra analize başlayabilirsiniz.

1. Select, Where, Distinct Komutları

SQLPANDASAÇIKLAMA
select * from airports airportsTüm tabloyu getirir.
select top(10) * from airportsairports.head(10)İlk 10 satırı getirir.
select id from airports where iso_country = ‘TR’
airports.id[airports.iso_country == ‘TR’]iso_country si TR olan id leri getirir.
select distinct iso_region from airportsairports.iso_region.unique()Uniq değerleri getirir.

2. Birden Fazla Koşulla Seçim

SQL de birden fazla koşul and ve or ile verilirken, Pandas‘ta bu & ve | şekilleri ile verilir.

SQLPANDASAÇIKLAMA
select * from airports where iso_country = ‘TR’ and type = ‘closed’
airports[(airports.iso_region == ‘US-CA’) & (airports.type == ‘seaplane_base’)]Country’si TR olan ve type’ı closed olan değerleri getirir.
select ident, name, municipality from airports where iso_region = ‘US-CA’ and type = ‘large_airport’airports[(airports.iso_region == ‘US-CA’) & (airports.type == ‘large_airport’)][[‘ident’, ‘name’, ‘municipality’]]Region’u US-CA olan type’i large airport olan kolonları ident,name ve municipality olan değerleri getirir.

3. Order By Sıralama Komutu

SQL’de sıralama Order By komutu ile yapılırken, Pandas’ta ise sort_values ve ascending komutu kullanılmaktadır.

SQLPANDASAÇIKLAMA
select * from airports where iso_country = ‘TR’ order by idairports[airports.iso_country == ‘TR’].sort_values(‘id’)iso_country’si TR olanları id’e göre küçükten büyüğe sıralar.
select * from airports where iso_country = ‘TR’ order by id descairports[airports.iso_country == ‘TR’].sort_values(‘id’, ascending=False)iso_country’si TR olanları id’e göre büyükten küçüğe sıralar.

4. In-not, In Komutu

SQL’de where komutuna birden fazla değeri koşul olarak koymak için kullanılır. Pandas’ta ise bu işi isin komutu gerçekleştirir. Dışındakileri getirirken ~ simgesi unutulmamalıdır.

SQLPANDASAÇIKLAMA
select * from airports where type in (‘small_airport’, ‘closed’) airports[airports.type.isin([‘small_airport’, ‘closed’])]type’i small_airport ve closed olanları getirir.
select * from airports where type not in (‘small_airport’, ‘closed’)airports[~airports.type.isin([‘small_airport’, ‘closed’])]type’i small_airport ve closed dışındakileri getirir.

5. Group By, Count Komutları

SQL ve Pandas’da group by komutları ortaktır. Count komutu ise yerine göre değişebilir. SQL’deki count ile Pandas’daki size aynı anlamda kullanılabilir diyebiliriz.

SQLPANDASAÇIKLAMA
select iso_country, type, count(*) from airports group by iso_country, type order by iso_country, type


airports.groupby([‘iso_country’, ‘type’]).size()iso_country’e göre gruplar ve iso_coutry ve type göre sıralar.
select iso_country, type, count() from airports group by iso_country, type order by iso_country, count() descairports.groupby([‘iso_country’, ‘type’]).size().to_frame(‘size’).reset_index().sort_values([‘iso_country’, ‘size’], ascending=[True, False])iso_country’e göre gruplar ve iso_coutry ve type göre tersten sıralar.

6. Having

Gruplanmış veri SQL’de having komutu ile filtreleyebiliriz. Pandas’ta bu işlevi filtre komutu yapmaktadır.

SQLPANDASAÇIKLAMA
select type, count(*) from airports where iso_country = ‘US’ group by type having count(*) > 1000 order by count(*) descairports[airports.iso_country == ‘US’].groupby(‘type’).filter(lambda g: len(g) > 1000).groupby(‘type’).size().sort_values(ascending=False)iso_country’si US olanları type göre gruplar 1000’den büyük olanları getirir.

7. Union all ve Union

SQLPANDASAÇIKLAMA
select name, municipality,ident from airports where ident = ‘LTBE’ union all select name, municipality,ident from airports where ident = ‘LTFM’pd.concat([airports[airports.ident == ‘KLAX’][[‘name’, ‘municipality’]], airports[airports.ident == ‘KLGB’][[‘name’, ‘municipality’]]])identleri ‘LTBE’ ve ‘LTFM’ olanları getirir.

8. Insert into

SQL’de yeni tablo oluşturmak için create table komutu kullanılırken, tabloya yeni kayıt eklemek için kullanılan insert into komutu kullanılır. Pandas’da ise pd.DataFrame ile yeni tablo oluşturulup, yeni kayıtlar direk içine yazılabilir ya da başka bir tablo ile concat komutu ile birleştirilebilir.

SQLPANDASAÇIKLAMA
create table yenitablo (id integer, isim text);df1 = pd.DataFrame({‘id’: [1, 2], ‘isim’: [‘Mert’, ‘Furkan’]})Yeni tablo oluşturur.
insert into yenitablo values (1, ‘Mert’);df2 = pd.DataFrame({‘id’: [3], ‘name’: [‘Hermione Granger’]})Tabloya yeni kayıt ekler.
pd.concat([df1, df2]).reset_index(drop=True)
YA DA
data = pd.DataFrame([[9, 7], [8, 5]], columns=list(‘PD’))

data2 = pd.DataFrame([[6, 4], [1, 2]], columns=list(‘PD’))

data.append(data2, ignore_index=True)

9. Delete

SQL’de silme işlemini ‘delete‘ komutu yerine getirirken, Pandas’ta ‘drop‘ komutu kullanılır.

SQLPANDASAÇIKLAMA
delete from airports where type = ‘heliport’airports.drop(airports[airports.type == ‘heliport’].index)type’ı heliport olanları siler.

Bu yazımda temel olarak SQL ve Pandas komutlarının karşılaştırılmasına değindim. Gelecek yazılarımda Pandas kütüphanesi ile ilgili bir seri hazırlamayı düşünüyorum. Soru ve önerileriniz için bana linkedinden yazabilirsiniz.

* Bu yazıdan esinlenerek hazırlanmıştır.