DataFrame.dropna( axis=0, how=‘any’, thresh=None, subset=None, inplace=False)
有五個參數,官方文檔鏈接
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html
1.axis參數確定是否刪除包含缺失值的行或列
axis=0或axis='index’刪除含有缺失值的行,
axis=1或axis='columns’刪除含有缺失值的列,
df = pd.DataFrame({
"name": ['Alfred', 'Batman', 'Catwoman'],
"toy": [np.nan, 'Batmobile', 'Bullwhip'],
"born": [pd.NaT, pd.Timestamp("1940-04-25"),
pd.NaT]})
#輸出
name toy born
0 Alfred NaN NaT
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT
df.dropna()
#默認是axis=0
name toy born
1 Batman Batmobile 1940-04-25
df.dropna(axis='columns')
#輸出
name
0 Alfred
1 Batman
2 Catwoman
2.how參數當我們至少有一個NA時,確定是否從DataFrame中刪除行或列
how='all’或者how=‘any’。
how='all’時表示刪除全是缺失值的行(列)
how='any’時表示刪除只要含有缺失值的行(列)
df.dropna(how='all')
#沒有全是NA的行所以不刪除
name toy born
0 Alfred NaN NaT
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT
3.thresh=n表示保留至少含有n個非na數值的行
df.dropna(thresh=2)
#表示保留至少含有2個非缺失值的行,第一行只有一個非缺失值所以需要刪除
name toy born
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT
4.subset定義要在哪些列中查找缺失值
df.dropna(subset=['name', 'born'])
#刪除在'name' 'born'列含有缺失值的行
name toy born
1 Batman Batmobile 1940-04-25
5.inplace表示直接在原DataFrame修改