python進行數據清理之pandas中的drop用法


好久好久沒有更新博客了,之前自學的估計也都忘記差不多了。由於畢業選擇從事的行業與自己的興趣愛好完全兩條路,心情也難過了很久,既然入職了就要好好干,仍要保持自己的興趣,利用業余時間重拾之前的樂趣。

從基本的數據清理學起吧

講一下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=Noneaxis=0index=Nonecolumns=Nonelevel=Noneinplace=Falseerrors='raise')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM