好久好久沒有更新博客了,之前自學的估計也都忘記差不多了。由於畢業選擇從事的行業與自己的興趣愛好完全兩條路,心情也難過了很久,既然入職了就要好好干,仍要保持自己的興趣,利用業余時間重拾之前的樂趣。
從基本的數據清理學起吧
講一下drop函數的用法
刪除表中的某一行或者某一列更明智的方法是使用drop,它不改變原有的df中的數據,而是可選擇性的返回另一個dataframe來存放刪除后的數據。
刪除無效項
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()] )結果一樣
填充空缺項
df.fillna(0) df.fillna({1:0, 2:0.5}) #對第一列nan值賦0,第二列賦值0.5 df.fillna(method='ffill') #在列方向上以前一個值作為值賦給NaN
method : {‘backfill’, ‘bfill’, ‘pad’, ‘ffill’, None}, default None
pad/ffill:用前一個非缺失值去填充該缺失值
backfill/bfill:用下一個非缺失值填充該缺失值
None:指定一個值去替換缺失值
drop函數的使用:
(1)刪除行、列
print(frame.drop(['a'])) print(frame.drop(['b'], axis = 1))#drop函數默認刪除行,列需要加axis = 1
(2)inplace參數
1. DF.drop('column_name', axis=1); 2. DF.drop('column_name',axis=1, inplace=True) 3. DF.drop([DF.columns[[0,1, 3]]], axis=1, inplace=True)
對原數組作出修改並返回一個新數組,往往都有一個 inplace可選參數。如果手動設定為True(默認為False),那么原數組直接就被替換。也就是說,采用inplace=True之后,原數組名對應的內存值直接改變(如2和3情況所示);
而采用inplace=False之后,原數組名對應的內存值並不改變,需要將新的結果賦給一個新的數組或者覆蓋原數組的內存位置(如1情況所示)。
DataFrame.
drop
(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')