基於python的大資料分析-資料處理(程式碼實戰)

testingbang發表於2019-08-30

接著上篇繼續。資料獲取之後並不能直接分析或使用,因為裡面有很多無效的垃圾資料,所以必須要經過處理才可以。資料處理的主要內容包括資料清洗、資料抽取、資料交換和資料計算等。

資料清洗
資料清洗是資料價值鏈中最關鍵的一步。垃圾資料即使是透過最好的分析也可能會產生錯誤的結果,並造成較大的誤導。
資料清洗就是處理缺失資料以及清除無意義的資訊,如刪除原始資料集中的無關資料、重複資料、平滑噪音資料,篩選掉與分析主題無關的資料等等。
重複值的處理
步驟如下:
1 利用DataFrame中的duplicated方法返回一個布林型的Series,顯示是否有重複行。沒有顯示FALSE,有則從重複的第二行起顯示為TRUE
2 在利用DataFrame中的drop_duplicates方法返回一個移除了重複行的DataFrame
duplicated的格式:
duplicated(subset=None, keep='first')
括號中的引數均為可選,不寫預設判斷全部列
subset用於識別重複的列標籤或列標籤序號,預設是所有的列標籤
keep為first表示除了第一次出現外,其餘相同的資料被標記為重複;為last表示除了最後一次外,其餘相同的資料被標記為重複;為false表示所有相同的資料都被標記為重複
drop_duplicates的格式:
drop_duplicates()
如果你想指定某個列就在括號里加入列名即可
from pandas import DataFrame
from pandas import Series
#造資料
df=DataFrame({'age':Series([26,85,85]),'name':Series(['xiaoqiang1','xiaoqiang2','xiaoqiang2'])})
df
#判斷是否有重複行
df.duplicated()
#移除重複行
df.drop_duplicates()
缺失值的處理
缺失值的處理一般包括兩個步驟,分別是缺失資料的識別和缺失資料的處理。
缺失資料的識別
pandas使用浮點值NaN表示浮點和非浮點陣列裡的缺失資料,並使用isnull和notnull函式來判斷缺失情況。


#缺失資料的識別
from pandas import DataFrame
from pandas import read_excel
#有缺失資料
df=read_excel(r'D:python_workspaceanacondarz.xlsx', sheetname='Sheet2')
df
#識別缺失資料,NaN的就會顯示True。notnull函式正好相反
df.isnull()



rz.xlsx的內容如下
缺失資料的處理
對於缺失資料的處理有資料補齊、刪除對應的行、不處理。這裡直接擼程式碼解釋
#接著上面的繼續,進行資料的處理
#去除資料中值為空的資料行
newdf=df.dropna()
newdf
#用其他數值代替NaN
newdf2=df.fillna('--')
newdf2
#用前一個資料值代替NaN
newdf3=df.fillna(method='pad')
newdf3
#用後一個資料值代替NaN
newdf4=df.fillna(method='bfill')
newdf4
#傳入一個字典對不同的列填充不同的值
newdf5=df.fillna({'數分':100,'高代':99})
newdf5
#用平均數來代替NaN。會自動計算有NaN兩列的資料的平均數
newdf6=df.fillna(df.mean())
newdf6
#還可以使用strip()來去除資料左右的指定字元,這個是python的基礎了,這裡不做演示了


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942496/viewspace-2655490/,如需轉載,請註明出處,否則將追究法律責任。

相關文章