python 數(shù)據(jù)的清理行為實例詳解
python 數(shù)據(jù)的清理行為實例詳解
數(shù)據(jù)清洗主要是指填充缺失數(shù)據(jù),消除噪聲數(shù)據(jù)等操作,主要還是通過分析“臟數(shù)據(jù)”產(chǎn)生的原因和存在形式,利用現(xiàn)有的數(shù)據(jù)挖掘手段去清洗“臟數(shù)據(jù)”,然后轉(zhuǎn)化為滿足數(shù)據(jù)質(zhì)量要求或者是應(yīng)用要求的數(shù)據(jù)。
1、try 語句還有另外一個可選的子句,它定義了無論在任何情況下都會執(zhí)行的清理行為。
例如:
>>>try: raiseKeyboardInterrupt finally: print('Goodbye, world!') Goodbye, world! Traceback(most recent call last): File"<pyshell#71>", line 2,in<module> raiseKeyboardInterrupt KeyboardInterrupt
以上例子不管try子句里面有沒有發(fā)生異常,finally子句都會執(zhí)行。
2、如果一個異常在 try 子句里(或者在 except 和 else 子句里)被拋出,而又沒有任何的 except 把它截住,那么這個異常會在 finally 子句執(zhí)行后再次被拋出。
下面是一個更加復(fù)雜的例子(在同一個 try 語句里包含 except 和 finally 子句):
>>>def divide(x, y): try: result = x / y exceptZeroDivisionError: print("division by zero!") else: print("result is", result) finally: print("executing finally clause") >>> divide(2,1) result is2.0 executing finally clause >>> divide(2,0) division by zero! executing finally clause >>> divide("2","1") executing finally clause Traceback(most recent call last): File"<pyshell#91>", line 1,in<module> divide("2","1") File"<pyshell#88>", line 3,in divide
3、預(yù)定義的清理行為
一些對象定義了標準的清理行為,無論系統(tǒng)是否成功的使用了它,一旦不需要它了,那么這個標準的清理行為就會執(zhí)行。
這面這個例子展示了嘗試打開一個文件,然后把內(nèi)容打印到屏幕上:
>>>for line in open("myfile.txt"): print(line, end="") Traceback(most recent call last): File"<pyshell#94>", line 1,in<module> for line in open("myfile.txt"): FileNotFoundError:[Errno2]No such file or directory:'myfile.txt'
以上這段代碼的問題是,當(dāng)執(zhí)行完畢后,文件會保持打開狀態(tài),并沒有被關(guān)閉。
關(guān)鍵詞 with 語句就可以保證諸如文件之類的對象在使用完之后一定會正確的執(zhí)行他的清理方法:
>>>with open("myfile.txt")as f: for line in f: print(line, end="") Traceback(most recent call last): File"<pyshell#98>", line 1,in<module> with open("myfile.txt")as f: FileNotFoundError:[Errno2]No such file or directory:'myfile.txt'
以上這段代碼執(zhí)行完畢后,就算在處理過程中出問題了,文件 f 總是會關(guān)閉。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Python實現(xiàn)曲線擬合操作示例【基于numpy,scipy,matplotlib庫】
這篇文章主要介紹了Python實現(xiàn)曲線擬合操作,結(jié)合實例形式分析了Python基于numpy,scipy,matplotlib庫讀取csv數(shù)據(jù)、計算曲線擬合及圖形繪制相關(guān)操作技巧,需要的朋友可以參考下2018-07-07Python中__new__與__init__方法的區(qū)別詳解
這篇文章主要介紹了Python中__new__與__init__方法的區(qū)別,是Python學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-05-05Django 響應(yīng)數(shù)據(jù)response的返回源碼詳解
這篇文章主要介紹了Django 響應(yīng)數(shù)據(jù)response的返回源碼詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08