Ana içeriğe atla

PYTHON İÇİN SQL FONKSİYONLARI - PART3

 Bu yazı, PYTHON İÇİN SQL FONKSİYONLARI yazı serisinin son bölümü olacaktır. Bu yazıda veri analizi sırasında sıklıkla kullanılan SQL fonksiyonları dışındaki çok önemli fonksiyonlara da yer vereceğim. PYTHON İÇİN SQL FONKSİYONLARI - PART1 ve PYTHON İÇİN SQL FONKSİYONLARI - PART2 ' e tıklayarak ulaşabilirsiniz. 

Bu yazımda değineceğim fonksiyonlar aşağıdadır. Bu çalışma için dataseti  buradan indirebilirsiniz. İncelemek istediğiniz koda tıklayarak kodun yazımına doğrudan ilerleyebilirsiniz. İlerlediğiniz sayfadan tekrar buraya dönmek için kural adına tıklamanız yeterlidir. 

Diğer partları okuyup buraya geldiyseniz tekrar olacak ama istediğiniz bir çıktıyı verecek birden fazla yöntem olabileceğini aklınızdan çıkarmadan okumanızı tavsiye ederim.

   35.SELECT EXTRACT(YEAR FROM A),EXTRACT(MONTH FROM A) FROM X

   42.PIVOT


Hazırsanız son bölüme başlayalım. Bu bölümde bazı fonksiyonlar için kendimiz ayrı bir dataframe oluşturacağız ve sonuçları bunlar üzerinden göstereceğim.

loan_data2=loan_data.loc[:100,:]
loan_data2.rename(columns={"Loan_ID":"Loan_ID2"},inplace=True)

loan_data['key'] = 0
loan_data2['key'] = 0

pd.merge(loan_data,loan_data2, on="key")


pd.concat([loan_data,loan_data2],axis=0,ignore_index=True).drop_duplicates()


pd.concat([loan_data,loan_data2],axis=0,ignore_index=True)


df = pd.DataFrame({'month': ['1-05-01 00:00:00','1-06-01 00:00:00','1-06-01 00:00:00','1-05-01 00:00:00']})

df['month'] = pd.to_datetime(df['month'])


df["month"].dt.year #extract year

df["month"].dt.month #extract month

df["month"].dt.day #extract day

df["month"].dt.dayofweek #extract dayofweek

df["month"].dt.day_name() #extract day_name

from pandas.tseries.offsets import MonthEnd

df['Date'] = pd.to_datetime(df['month'], format="%Y%m") + MonthEnd(1)
df


df.month + pd.DateOffset(months=1)


pd.datetime.now().strftime("%d/%m/%Y")


data = {'close_date': ["2012-08-01", "2012-08-01", "2012-08-01", "2012-08-02", "2012-08-03", "2012-08-04", "2012-08-05", "2012-08-07"],
        'seller_name': ["Lara", "Julia", "Julia", "Emily", "Julia", "Lara", "Julia", "Julia"]
       }
df = pd.DataFrame(data)
df['close_date'] = pd.to_datetime(df['close_date'])

df.groupby('seller_name')['close_date'].rank(method='first')

df['rank_seller_by_close_date'] = df.groupby('seller_name')['close_date'].rank(method='first')

df['rank_seller_by_close_min'] = df.groupby('seller_name')['close_date'].rank(method='min')

df['dense_rank_agency_seller_by_close_dense'] = df.groupby(['seller_name'])['close_date'].rank(method='dense')


df = pd.DataFrame({"Col1": [10, 20, 15, 30, 45],

                   "Col2": [13, 23, 18, 33, 48],

                   "Col3": [17, 27, 22, 37, 52]},

                  index=pd.date_range("2020-01-01", "2020-01-05"))

df["Col1_lag"]=df["Col1"].shift(1)

     41.SELECT LEAD(A,1) FROM X


df2=df.reset_index().sort_values("index",ascending=False)
df2["col2_lead"]=df2.Col2.shift(1)

     42.PIVOT


loan_data.pivot_table(index="Gender",columns="Property_Area",values="LoanAmount",aggfunc=sum)

loan_data.pivot_table(index="Gender",columns="Property_Area",values="oto_onay",aggfunc=np.size)

loan_data.pivot_table(index="Gender",columns="Property_Area",values="LoanAmount",
                      aggfunc = lambda x:x.sum()/loan_data['LoanAmount'].sum())

loan_data.pivot_table(index="Gender_Missing",columns="Property_Area",values="LoanAmount",
                      aggfunc = lambda x:x.sum(axis=0)/loan_data['LoanAmount'].sum(axis=0)*100)

     43.UNPIVOT


pivot=loan_data.pivot_table(index="Gender",columns="Property_Area",values="LoanAmount",
                      aggfunc = lambda x:x.sum()/loan_data['LoanAmount'].sum())

pivot=pivot.reset_index()
pivot.melt()

     44.BINNING


loan_data["binning"]=pd.cut(loan_data.ApplicantIncome,bins=10,labels=np.arange(10))

loan_data["binning5"]=pd.cut(loan_data.ApplicantIncome,bins=5,labels=np.arange(5))

loan_data["binning100"]=pd.cut(loan_data.ApplicantIncome,bins=100,labels=np.arange(100))

loan_data["binning_qcut"]=pd.qcut(loan_data.ApplicantIncome,q=5)

loan_data["binning_qcut5"]=pd.qcut(loan_data.ApplicantIncome,q=5,labels=np.arange(5))


d = {
   'Name':['Alisa','Bobby','Cathrine','Alisa','Bobby','Cathrine',
           'Alisa','Bobby','Cathrine','Alisa','Bobby','Cathrine'],
    'Exam':['Semester 1','Semester 1','Semester 1','Semester 1','Semester 1','Semester 1',

            'Semester 2','Semester 2','Semester 2','Semester 2','Semester 2','Semester 2'],
       'Subject':['Mathematics','Mathematics','Mathematics','Science','Science','Science',
              'Mathematics','Mathematics','Mathematics','Science','Science','Science'],

 'Result':['Pass','Pass','Fail','Pass','Fail','Pass','Pass','Fail','Fail','Pass','Pass','Fail']}

df = pd.DataFrame(d,columns=['Name','Exam','Subject','Result'])
my_crosstab=pd.crosstab(df.Subject, df.Result,margins=True)

my_crosstab.columns = ["Fail" , "Pass" , "rowtotal"] 
my_crosstab.index= ["Mathematics","Science","coltotal"]
my_crosstab/my_crosstab.loc["coltotal",:]

my_crosstab.columns = ["Fail" , "Pass" , "rowtotal"] 
my_crosstab.index= ["Mathematics","Science","coltotal"]
my_crosstab.div(my_crosstab["rowtotal"],axis=0)

PYTHON İÇİN SQL FONKSİYONLARI serisinin sonuna geldik. Okuduğunuz için teşekkür ederim. Diğer yazılarımda görüşmek üzere.

Yorumlar

Most Popular

PYTHON İLE VERİ GÖRSELLEŞTİRME

Merhabalar, Bu yazımda data analiz aşamasında işimizi oldukça kolaylaştıran bir yöntem olan veri görselleştirme üzerinde duracağım. Grafik türlerini göstermeye çalışırken aklıma gelen tüm özellikleri grafiklere koymaya çalıştım. Sizler grafikleri kullanırken işinize yaramayan kodları çıkartabilirsiniz.  Aynı satırda/sütunda birden fazla grafik çizdirmemizi ve ilişkileri daha rahat görmemizi sağlayan subplot konusuna ayrı değineceğim. Subplot için buraya tıklayabilirsiniz.  İncelemek istediğiniz grafiğin adına tıklayarak grafiğin kodunun yazımına doğrudan ilerleyebilirsiniz. İlerlediğiniz sayfadan tekrar menüye dönmek için grafik adına tıklamanız yeterlidir.  Bu yazımda değineceğim grafik türleri: 1)LINE PLOT 2)BAR CHART      2.1) STACKED BAR CHART      2.2) GROUPED BAR CHART 3)BOX PLOT 4)PIE CHART 5)HEATMAP  6)TREE MAP  7)SCATTER PLOT Grafik türleri görmeye başlamadan önce bazı görselleştirme kütüphanelerini import etmek...

PYTHON MAKİNE ÖĞRENMESİ - PIPELINE VE COLUMNTRANSFORMER

Merhabalar, bu yazımda makine öğrenmesi modelleme sürecinde yazdığınız kodların kalitesini ve okunabilirliğini nasıl artıracağınızı anlatacağım. Bunun için Pipeline ve ColumnTransformer fonksiyonlarını kullanacağız. Kodlara geçmeden önce bu fonksiyonların tanımı ve birbirinden ne gibi farkları olduğuna kısaca değineceğim.  Bu yazının asıl amacı Pipeline ve ColumnTransformer yapılarına örnek vermek olduğu için projeyi geliştirme aşamasındaki adımları kendinize göre uyarlayabileceğinizi unutmadan okumanızı tavsiye ederim.  Pipeline Nedir ?  Pipeline;  bir önceki adımdaki çıktının, bir sonraki adımdaki girdiye dönüştüğü birden fazla adımı birbirine bağlayan zincirleme bir yöntemdir. Modelin başından sonuna kadar her bir işlem adımı, tek bir işlem ile tanımlandığı için kodların takibi kolaydır.  Pipeline  yapısını kurabilmek için kullanacağınız fonksiyonlarda  fit ve transform metodlarının bulunması gereklidir.  Yapacağımız projede örnek olarak kend...

PYTHON İÇİN SQL FONKSİYONLARI - PART1

 Data Analiz aşaması için SQL olmazsa olmaz bir araçtır. İyi bir model yapabilmek için datayı iyi analiz etmek gerekmektedir.  Bu yazımda SQL fonksiyonlarının Python kullanılarak nasıl yazılabileceğini göstereceğim. İstenen çıktıyı verecek birden fazla metot olabileceğini unutmadan yazıyı okumanızı tavsiye ederim.   Bu çalışma için dataseti  buradan indirebilirsiniz. Dataseti,python dosyanızın olduğu dizine "loan_train" adıyla yükleyin. Birçok fonksiyon olduğu için yazıyı partlara ayırdım. Diğer partlara yazının sonundaki yönlendirmelerle ulaşabilirsiniz. Part1 de SQL de data analiz aşamasında sıklıkla kullanılan aşağıdaki kodların Python'da nasıl yazılacağını öğreneceğiz. Basitten zora doğru gideceğiz. İncelemek istediğiniz koda tıklayarak kodun yazımına doğrudan ilerleyebilirsiniz. İlerlediğiniz sayfadan tekrar buraya dönmek için kural adına tıklamanız yeterlidir. SELECT   *   FROM   X SELECT  A,B,C   FROM   X SELECT...