Mike的Python學院

程式語言、PYTHON資料分析、Pandas、資料分析、資料處理、巨量資料處理與分析、Kaggle、Python、資料探勘

Mike Ku

Learn Code With Mike品牌創辦人

2021/11/24

4個必學的Pandas套件處理遺漏值資料方法

本文以Kaggle網站的「Netflix data with IMDB scores added( https://www.kaggle.com/sarahjeeeze/imdbfile )」資料集為例,來和大家分享筆者在處理遺漏值(Missing Value)時,常用的Pandas套件方法(Method)。
Q:Pandas如何探索遺漏值(Missing Value)?
如果想要探索每一個欄位資料是否有遺漏值(Missing Value),通常會使用Pandas套件的isnull()方法(Method)來查看,如下範例:
df = pd.read_csv('mycsvfile.csv')
print(df.isnull())
Pandas套件的isnull()方法(Method)會將所有欄位資料內容顯示為布林值(Boolean),只要是遺漏值(Missing Value)就會顯示為True。
但是這樣並沒有辦法讓我們快速瞭解每個欄位的遺漏值(Missing Value)狀況,這時候就可以搭配使用Pandas套件的sum()方法(Method),將每個欄位進行加總,瞭解每個欄位的遺漏值(Missing Value)個數,如下範例:
df = pd.read_csv('mycsvfile.csv')
print(df.isnull().sum())
由於在Python中,True代表1,False代表0,所以利用Pandas套件的isnull()與sum()方法(Method),就能夠知道資料集的每個欄位遺漏值(Missing Value)個數。
Q:Pandas如何檢視遺漏值(Missing Value)?
探索了每個欄位的遺漏值(Missing Value)個數後,如果想要特別檢視特定欄位的遺漏值(Missing Value)資料內容,就可以利用以下的Pandas套件篩選語法:
df = pd.read_csv('mycsvfile.csv')
print(df[df.date_added.isnull()])
以上範例,就是檢視date_added(新增日期)欄位的11筆遺漏值(Missing Value)資料內容。
Q:Pandas dropna()方法(Method)如何使用?
Pandas套件提供了dropna()方法(Method)來因應不同的需求,包含:
1.dropna(how='any'):任一欄位有遺漏值(Missing Value)的資料就移除,如下範例:
df = pd.read_csv('mycsvfile.csv')
print(df.dropna(how='any'))
2.dropna(how='all'):所有欄位皆有遺漏值(Missing Value)的資料就移除,如下範例:
df = pd.read_csv('mycsvfile.csv')
print(df.dropna(how='all'))
3.dropna(subset=['欄位名稱', ...], how='any'):任一個指定的欄位有遺漏值(Missing Value)的資料就移除,如下範例:
df = pd.read_csv('mycsvfile.csv')
print(df.dropna(subset=['director', 'date_added'], how='any'))
4.dropna(subset=['欄位名稱', ...], how='all'):指定的欄位皆有遺漏值(Missing Value)的資料就移除,如下範例:
df = pd.read_csv('mycsvfile.csv')
print(df.dropna(subset=['director', 'date_added'], how='all'))
Q:Pandas fillna()方法(Method)如何使用?
另一個遺漏值(Missing Value)資料的處理方式,就是填入自訂的值,這時候就能利用Pandas套件的fillna()方法(Method),指定value關鍵字參數(Keyword Argument)為想要填入的值即可,如下範例:
df = pd.read_csv('mycsvfile.csv')
df['director'].fillna(value='Not Found', inplace=True)
如果想要學習更多的Python應用教學,歡迎前往Learn Code With Mike( https://www.learncodewithmike.com/2021/07/pandas-handle-missing-value.html )網站觀看更多精彩內容。
2 0 105 2