在資料預處理時,因為人工採集資料的過程,經常有可能把空值和空格混在一起,一般也注意不到在本來為空的單元格裡加入了空格。這就給做資料處理的人帶來了麻煩,因為空值和空格都是代表的無資料,而pandas中series的方法notnull()會把有空格的資料也納入進來。一般這種情況採用的做法是,先將空格用nan值替換,再進行空值填充。
源資料形式如下:
再看一下資料的行數及資料格式:
可以看到,對於data["call_result2"]這一列資料是有缺失的,我們先用nan值將空格處理了,再進行空值處理。
# 針對空格處理,用nan替換
import numpy as np
data['call_result2']=data['call_result2'].replace(r'^\s*$',np.nan,regex=true)
用乙個大值進行空值填充:
data[['call_result2']]=data[['call_result2']].fillna(-9999)
處理後的資料情況:
由於data["call_result2"]這一列都是數值,但它的資料型別顯示是object,再轉一下資料型別:
data[['call_result2']]=data[['call_result2']].astype("int64")
最後的資料格式:
pandas 資料處理
pandas中資料可以分為series,dataframe,panel分別表示一維至三維資料。其中在構造時,index表示行名,columns表示列名 構造方式 s pd.series data index index s pd series np random randn 5 index a b ...
pandas資料處理
dataframe.duplicated subset none,keep first 判斷dataframe中的資料是否有重複 必須一行中所有資料都重複才算重複,只能判斷行,不能判斷列 返回series dataframe.drop duplicates subset none,keep firs...
Pandas資料處理
資料處理 pandas from sklearn.preprocessing import minmaxscaler data 1,2 0.5,6 0.10 1,18 將 numpy 轉換成 pd 表 pd.dataframe data 歸一化 0,1 之間 scaler minmaxscaler ...