2-python資料分析-基於pandas的資料清洗、DataFrame的級聯與合併操作
阿新 • • 發佈:2020-07-14
基於pandas的資料清洗
處理丟失資料
- 有兩種丟失資料:
- None
- np.nan(NaN)
- 兩種丟失資料的區別
- None 是物件型別
- np.nan 是浮點型別
type(None) # NoneType 物件型別 type(np.nan) # float 浮點型別
為什麼在資料分析中需要用到的是浮點型別的空而不是物件型別?
- 資料分析中會常常使用某些形式的運算來處理原始資料,如果原數資料中的空值為NAN的形式,則不會干擾或者中斷運算。
- NAN可以參與運算的
- None是不可以參與運算
在pandas中如果遇到了None形式的空值則pandas會將其強轉成NAN的形式。pandas中,None=nan
pandas處理空值操作
- 對空值進行刪除
- 對空值進行填充
主要用的技術點
- isnull
- notnull
- any
- all
- dropna
- fillna
首先建立一組帶有空值的資料
df = DataFrame(data=np.random.randint(0,100,size=(7,5))) df.iloc[2,3] = None df.iloc[4,2] = np.nan df.iloc[5,4]= None df
方式1:對空值進行過濾(刪除空所在的行資料)
技術
- isnull,any
- notnull,all
df.isnull() # 這樣查詢不太具體
# 哪些行中有空值# any(axis=1)檢測哪些行中存有空值 df.isnull().any(axis=1) # any會作用isnull返回結果的每一行 # True對應的行就是存有缺失資料的行 0 False 1 False 2 True 3 False 4 True 5 True 6 False dtype: bool
df.notnull()
df.notnull().all(axis=1) 0 True 1 True 2 False 3 True 4 False 5 False 6 True dtype: bool