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 İLE VERİ GÖRSELLEŞTİRME- SUBPLOTS

Merhabalar, Bu yazımda,  PYTHON İLE VERİ GÖRSELLEŞTİRME yazımda değindiğim subplot konusunu ele alacağım. Subplot; satır veya sütunda bir veya daha çok grafiği çizdirmemizi sağlayan bir grafik türüdür. Bu grafikler aynı tür ve boyutta olabileceği gibi farklı tür ve boyutlarda da olabilir. Kullanıcının istediği tasarımı verebilmesi ve verinin hikayesini daha akıcı bir şekilde anlatabilmesi nedeniyle oldukça kullanışlıdır.  Farklı subplotlar göstermek için araştırma yaparken, çok kolay bir şekilde istediğiniz tasarımı oluşturmayı sağlayan bir fonksiyon ile karşılaştım. Bu fonksiyon matplotlib kütüphanesinden subplot_mosaic . Sizlere bu fonksiyonu anlatabilmek ve çeşitli grafik türlerini tek bir figure altında nasıl oluşturabileceğinizi göstermek amacıyla bir veri seti oluşturdum. Veri setinin amacı görselleştirme çalışması olduğu için lütfen anlam çıkarmaya çalışmayın:)  Kodların anlamlarını tek tek açıklayacağım. En sonda ise hepsini birleştireceğim. B uraya tıklayarak ...