-
isnull和notnull:检测是否是空值,可用于d和series
-
dropna:丢弃、删除缺失值
-
axis:删除行还是列,{0or’index’,1or’columns’),default0
-
how:如果等于any则任何值为空都删除,如果等于al侧所有值都为空才删除
-
inplace:如果为True则修改当前df,否则返回新的df
-
-
fillna:填充空值
-
value:用于填充的值,可以是单个值,或者字典(key是列名,value是值)
-
method:等于fill使用前一个不为空的值填充forword fill;等于bfill使用后一个不为空的值填充backword fill
-
axis:按行还是列填充,{0 or ‘index’,1 or ‘columns’}
-
inplace:如果为True则修改当前df,否则返回新的df
-
df =
| Unnamed: 0 | 姓名 | 学科 | 成绩 | |
|---|---|---|---|---|
| 0 | NaN | 小明 | 语文 | 85.0 |
| 1 | NaN | NaN | 数学 | 89.0 |
| 2 | NaN | NaN | 英语 | 98.0 |
| 3 | NaN | NaN | NaN | NaN |
| 4 | NaN | 小红 | 语文 | NaN |
| 5 | NaN | NaN | 数学 | 92.0 |
| 6 | NaN | NaN | 英语 | 96.0 |
| 7 | NaN | NaN | NaN | NaN |
| 8 | NaN | 小刚 | 语文 | 89.0 |
| 9 | NaN | NaN | 数学 | 98.0 |
| 10 | NaN | NaN | 英语 | 86.0 |
- 判断是不是nan
is_na = df.isna() not_na = df.notna() # print(is_na) # print(not_na)
- 删除全是nan的行和列
df.dropna(axis=0, how="all", inplace=True) df.dropna(axis=1, how="all", inplace=True) # print(df)
- 将姓名列nan填充
df["姓名"].fillna(axis=0, method="ffill", limit=2, inplace=True) # print(df)
- 将成绩列nan填充0
df["成绩"].fillna(0, inplace=True) print(df)
- 将数据保存到Excel
df.to_excel("./ml-latest-small/demo4.xlsx", sheet_name="Sheet1", index=False)



