數(shù)據(jù)清洗是數(shù)據(jù)分析關(guān)鍵的一步,直接影響之后的處理工作 數(shù)據(jù)需要修改嗎?有什么需要修改的嗎?數(shù)據(jù)應(yīng)該怎么調(diào)整才能適用于接下來的分析和挖掘? 是一個迭代的過程,實(shí)際項(xiàng)目中可能需要不止一次地執(zhí)行這些清洗操作 1. 處理缺失數(shù)據(jù):
2. 數(shù)據(jù)轉(zhuǎn)換 2.1 處理重復(fù)數(shù)據(jù) duplicated()返回布爾型Series表示每行是否為重復(fù)行 示例代碼: import numpy as npimport pandas as pddf_obj = pd.DataFrame({'data1' : ['a'] * 4 + ['b'] * 4, 'data2' : np.random.randint(0, 4, 8)})print(df_obj)print(df_obj.duplicated()) 運(yùn)行結(jié)果:
drop_duplicates()過濾重復(fù)行
示例代碼: print(df_obj.drop_duplicates())print(df_obj.drop_duplicates('data2')) 運(yùn)行結(jié)果:
2.2 利用函數(shù)或映射進(jìn)行數(shù)據(jù)轉(zhuǎn)換 根據(jù)map傳入的函數(shù)對每行或每列進(jìn)行轉(zhuǎn)換 示例代碼: ser_obj = pd.Series(np.random.randint(0,10,10))print(ser_obj)print(ser_obj.map(lambda x : x ** 2)) 運(yùn)行結(jié)果:
2.3 替換值 replace根據(jù)值的內(nèi)容進(jìn)行替換 示例代碼: # 單個值替換單個值print(ser_obj.replace(1, -100))# 多個值替換一個值print(ser_obj.replace([6, 8], -100))# 多個值替換多個值print(ser_obj.replace([4, 7], [-100, -200])) 運(yùn)行結(jié)果:
3. 字符串操作 3.1 字符串方法 3.2 正則表達(dá)式方法 3.3 pandas字符串函數(shù) |
|