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ù)定義的清理行為
一些對象定義了標(biāo)準(zhǔn)的清理行為,無論系統(tǒng)是否成功的使用了它,一旦不需要它了,那么這個標(biāo)準(zhǔn)的清理行為就會執(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-07
Python中__new__與__init__方法的區(qū)別詳解
這篇文章主要介紹了Python中__new__與__init__方法的區(qū)別,是Python學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-05-05
Django 響應(yīng)數(shù)據(jù)response的返回源碼詳解
這篇文章主要介紹了Django 響應(yīng)數(shù)據(jù)response的返回源碼詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08

