刪除表中的某一行或者某一列更明智的方法是使用drop,它不改變原有的df中的數據,而是返回另一個dataframe來存放刪除后的數據。
(1)清理無效數據
df[df.isnull()] #返回的是個true或false的Series對象(掩碼對象),進而篩選出我們需要的特定數據。
df[df.notnull()]
df.dropna() #將所有含有nan項的row刪除
df.dropna(axis=1,thresh=3) #將在列的方向上三個為NaN的項刪除
df.dropna(how='ALL') #將全部項都是nan的row刪除
此處:print( data.dropna()) 和 print(data[data.notnull()]) 結果一樣
(2)填充無效值
df.fillna(0)
df.fillna({1:0, 2:0.5}) #對第一列nan值賦0,第二列賦值0.5
df.fillna(method='ffill') #在列方向上以前一個值作為值賦給Na
注意:凡是會對原數組作出修改並返回一個新數組的,往往都有一個 inplace可選參數。如果手動設定為True(默認為False),那么原數組直接就被替換。也就是說,采用inplace=True之后,原數組名(如2和3情況所示)對應的內存值直接改變;
而采用inplace=False之后,原數組名對應的內存值並不改變,需要將新的結果賦給一個新的數組或者覆蓋原數組的內存位置(如1情況所示)。
(3)astype函數的使用:數據類型轉換
df['Name'] = df['Name'].astype(np.datetime64)
DataFrame.astype() 方法可對整個DataFrame或某一列進行數據格式轉換,支持Python和NumPy的數據類型。