亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Python制作數據分析工具

Alex_Cen 產品經理
難度初級
時長 1小時10分
學習人數
綜合評分9.17
20人評價 查看評價
9.2 內容實用
9.1 簡潔易懂
9.2 邏輯清晰
  • '''

    Created on 2018年7月10日

    Kaggle網站公開的數據

    @author: Administrator

    '''

    #-*-coding:utf-8-*-

    from __future__ import division

    import pandas as pd

    import numpy as np

    from scipy import stats



    ##0.Read Data ##

    df = pd.read_csv("train.csv")

    label = df['TARGET']

    df = df.drop(['ID', 'TARGET'], axis = 1)


    ##1.Basic Analysis##

    #(1)Missing Value#

    missSet = [np.nan, 9999999999, -999999]


    #(2)Count distinct#

    len(df.iloc[:,0].unique())


    count_un = df.iloc[:,0:3].apply(lambda x:len(x.unique()))


    #(3)Zero Values#

    np.sum(df.iloc[:,0]==0)


    count_zero = df.iloc[:,0:3].apply(lambda x:np.sum(x==0))

    ?

    #(4)Mean Values#

    np.mean(df.iloc[:,0]) #沒有去除缺失值之前的均值很低


    df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)]#去除缺失值

    np.mean(df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)])#去除缺失值后進行均值計算


    df_mean = df.iloc[:,0:3].apply(lambda x:np.mean(x[~np.isin(x, missSet)]))

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    #(5)Median Values#

    np.median(df.iloc[:,0])#沒有去除缺失值之前

    ?

    df.iloc[:,0][~np.isin(df.iloc[:,0], missSet)]#去除缺失值

    np.median(df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)])#去除缺失值后進行中位數計算

    ?

    df_median = df.iloc[:,0:3].apply(lambda x:np.median(x[~np.isin(x, missSet)])) ? ? ? ? ? ? ? ? ? ? ? ? ?

    ?

    #(6)Mode Values#

    df_mode = df.iloc[:,0:3].apply(lambda x:stats.mode(x[~np.isin(x, missSet)])[0][0])


    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

    #(7)Mode Percentage#

    df_mode_count = df.iloc[:,0:3].apply(lambda x:stats.mode(x[~np.isin(x, missSet)])[1][0])


    df_mode_perct = df_mode_count/df.shape[0]



    #(8)Min Values#

    np.min(df.iloc[:,0])


    df.iloc[:,0][~np.isin(df.iloc[:,0], missSet)]#去除缺失值

    np.min(df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)])#去除缺失值后進行最小值計算

    ?

    df_min = df.iloc[:,0:3].apply(lambda x:np.min(x[~np.isin(x, missSet)])) ?



    #(9)Max Values#

    np.max(df.iloc[:,0])


    df.iloc[:,0][~np.isin(df.iloc[:,0], missSet)]#去除缺失值

    np.max(df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)])#去除缺失值后進行最大值計算

    ?

    df_max = df.iloc[:,0:3].apply(lambda x:np.max(x[~np.isin(x, missSet)]))



    #(10)quantile Values#

    np.percentile(df.iloc[:,0],(1,5,25,50,75,95,99))


    df.iloc[:,0][~np.isin(df.iloc[:,0], missSet)]#去除缺失值

    np.percentile(df.iloc[:,0][~np.isin(df.iloc[:,0], missSet)], (1,5,25,50,75,95,99))#去除缺失值后進行分位點計算

    ? ?

    json_quantile ={}


    for i,name in enumerate(df.iloc[:,0:3].columns):

    ? ? print('the {} columns:{}').format(i,name)

    ? ? json_quantile[name] = np.percentile(df[name][~np.isin(df[name],missSet)],(1,5,25,50,75,95,99))


    df_quantile = pd.DataFrame(json_quantile)[df.iloc[:,0:3].columns].T


    #(11)Frequent Values#

    df.iloc[:,0].value_counts().iloc[0:5,] ??


    df.iloc[:,0][~np.isin(df.iloc[:,0],missSet)]#去除缺失值

    df.iloc[:,0][~np.isin(df.iloc[:,0], missSet)].value_counts()[0:5]#去除缺失值后進行頻數的計算


    json_fre_name =0

    json_fre_count ={}


    def fill_fre_top_5(x):

    ? ? if(len(x))<=5:

    ? ? ? ? new_array =np.full(5, np.nan)

    ? ? ? ? new_array[0:len(x)] =x

    ? ? ? ? return new_array


    df['ind_var1_0'].value_counts()

    df['imp_sal_var16_ultl'].value_counts()


    for i,name in enumerate(df[['ind_var1_0','imp_sal_var16_ultl']].columns):

    ? ? ##1.Index Name

    ? ? index_name = df[name][~np.isin(df[name],missSet)].value_counts().iloc[0:5, ].index.values

    ? ? ##1.1 If the length of array is less than 5

    ? ? index_name=fill_fre_top_5(index_name)

    ? ??

    ? ? ##2.Value Count

    ? ? values_count=df[name][~np.isin(df[name],missSet)].value_counts().iloc[0:5, ].values

    ? ? ##2.1 If the length of array is less than 5

    ? ? values_count = fill_fre_top_5(values_count)

    ? ??

    ? ? json_fre_count[name]=values_count

    ? ??

    df_fre_name =pd.DataFrame(json_fre_name)[df[['ind_var1_0','imp_sal_var16_ultl']].columns].T

    df_fre_count =pd.DataFrame(json_fre_count)[df[['ind_var1_0','imp_sal_var16_ultl']].columns].T


    df_fre = pd.concat([df_fre_name, df_fre_count],axis=1)



    #(12)Miss Values#

    np.sum(np.isin(df.iloc[:,0],missSet))#統計缺失值

    df_miss = df.iloc[:,0:3].apply(lambda x:np.sum(np.isin(x,missSet)))#遍歷每一個遍歷的缺失值情況


    查看全部
    0 采集 收起 來源:4.1 工具整合

    2018-07-17

  • 1
    查看全部
    0 采集 收起 來源:4.1 工具整合

    2018-07-15

  • 基本描述統計值

    特殊值描述值

    缺失值


    查看全部
  • 這個沒怎么看懂

    查看全部
  • 數據的讀取

    查看全部
  • 導入division是為了防止分母為0

    查看全部
  • 數據分析與建模的基礎
    查看全部
  • 數據分析與建模的基礎
    查看全部
  • 不錯
    查看全部
  • 這個

    查看全部
  • #分位點函數兩個參數:數據和分位值


    查看全部
  • 幾號
    查看全部
  • 統計指標
    查看全部
  • Python 3中scipy為何調不出mode,請問
    查看全部
  • eda是什么呢
    查看全部

舉報

0/150
提交
取消
課程須知
適合人群:希望從傳統分析人員轉型到數據挖掘和機器學習領域的人員;技術儲備:python基本知識,統計學基本知識
老師告訴你能學到什么?
1.用Python制作一個高效的數據診斷工具; 2.數據診斷的各種指標;

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!