iT邦幫忙

2022 iThome 鐵人賽

DAY 20
0
自我挑戰組

商業數據分析應用系列 第 20

[Day20] 使用def()簡化重複操作步驟

  • 分享至 

  • xImage
  •  

為了避免以後回顧程式碼時的解讀困難,今天決定來整理一下寫過的程式碼,並運用def()自定義函數來簡化一些比較重複的動作。
如果工作上會用到程式撰寫,應該也蠻常會使用到自定義函數的。

TODAY's Goal

def()的使用與練習

瀏覽了一下分析的程式碼,覺得比較重複的步驟是有關遮罩的部分,如果將自定義函數寫好,臨時想要看不同區段的時間時就可以直接呼叫這個函數了!

要使用自定義函數前要先進行宣告,函數名稱(參數Parameter)可以自取,但要記得不要與既有函數名稱重疊到,括號內可放置想要的引數(Argument)return為回傳值,如果未設置就會直接忽略(如果還想在函數外使用到,就需要設置)。

def your_name(x,y):
    z=x+y+10
    return z

====
your_name(5,7)
22

用在本次分析項目中試試看。

def data_mask(dataframe,column,time_1,time_2):
    m=dataframe[column]>=time_1
    m_1=dataframe[column]<=time_2
    number=dataframe[column][m&m_1].count()
    
    return number
data_mask(df1,'ride_length','00:01:00','01:00:00')

###
Out[10]: 411769

再來一個自定義函數,是關於讀取資料庫資料的。如果要讀取不同來源,相信會很好用的。/images/emoticon/emoticon07.gif

def read_sql(host,user,passwd,database,port,e):
    import pymysql
    db1 = pymysql.connect(host=host,
                          user=user,
                          passwd=passwd,
                          database=database,
                          port=port)
    cursor=db1.cursor()
    cursor.execute(e)
    data=cursor.fetchall()
    
    return data
read_sql('127.0.0.1','root','12345678','bike_clean_data',3306,
         '''SELECT * FROM clean_data''')

以上就是今天的小整理,期許自己在撰寫程式時能夠用更易理解的方式命名,也一邊去簡化程式的寫法,讓人一目了然。接下來幾天有機會的話,順便來複習一下物件導向(希望自己還記得XD),不過還是先以商業分析為主軸!

TOMORROW's Goal

從「探索」進入到「解釋」階段

明天見!


上一篇
[Day 19] 分析中常見偏誤(書摘/心得)
下一篇
[Day 21] 從「探索」邁入「解釋」階段
系列文
商業數據分析應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言