一.處理缺失資料
1.找到缺失資料
data=pd.Series(['a','b',np.nan,'d'])
data.isnull()
isnull:為NaN則回傳ture,否則回傳false,not null 則與isnull相反,
2.濾除缺失資料
data.dropna()
dropna:丟棄含有nan的行
data.dropna(how='all')
丟棄全為nan行的一行
data.dropna(thresh=2)
出現二個及二個以上的nan時該行被洗掉
3.填充資料
df.fillna(0)
將缺失值出現的地方用0賦值
df.fillna(method='ffill')
會將nan出現的前一個資料不斷的往下復制
二.資料轉換
1.移除重復資料
data.duplicated()
檢查是否含有重復資料,有則回傳ture
data.drop_duplicates()
洗掉重復的一列
2.利用函式或映射進行資料轉換
data['foood'].map(meat)
將meat中的值索引到food列中
3.替換值
data.replace(-999,np.nan)
將data中-999賦值為nan
4.重命名軸索引
data.reindex()
只能修改已有的標簽名,不對原資料產生影響
三.離散化和面元劃分
ages=[20,22,25,27,21,23,37,31,61,64,41,32]
bins=[18,25,35,60,100]
cats=pd.cut(ages,bins)
將ages中的資料分成四個階段分別為18,25,35,60,100
pd.value_counts(cats)
統計各階段的計數
cats=pd.qcut(data,4)
qcut:將面元平均分布,劃分成大小相等的面元
四.排列和隨機采樣
sum=np.random.permutation(6)
隨機排列1-6的數
df.sample(n=3)
隨機選擇三行資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/398583.html
標籤:AI
