Pandas 的 dropna() 函数用于删除数据中的缺失值(通常表示为 NaN)。这个函数对于数据清洗特别有用,因为缺失值可能会影响数据分析和模型训练的结果。
以下是 dropna() 函数的一些关键特点:
删除缺失值:
可以删除包含缺失值的行或列。
就地删除:
通过设置 inplace=True,可以就地修改 DataFrame,不返回新的 DataFrame。
指定轴:
可以指定删除行(axis=0)或列(axis=1)中的缺失值。
删除所有含缺失值的行或列:
设置 how=’any’ 删除任何包含缺失值的行或列。
设置 how=’all’ 仅删除所有值都是缺失值的行或列。
限制删除数量:
通过 thresh 参数可以指定每行或每列必须有至少多少个非缺失值才会被保留。
处理多重索引:
对于具有多级索引的 DataFrame,dropna() 也可以应用于索引层级。
import numpy as np
import pandas as pd
df = pd.DataFrame(data=[{"A":"one", "B":"a", "C":11}, {"A":"two", "B":np.nan, "C":22}, {"A":"one", "B":1, "C":12}])
A | B | C | |
---|---|---|---|
0 | one | a | 11 |
1 | two | NaN | 22 |
2 | one | 1 | 12 |
df1 = df.dropna() # 删除所有包含空值的行
A | B | C | |
---|---|---|---|
0 | one | a | 11 |
2 | one | 1 | 12 |
index索引没有变,要更新一下,具体使用列级 - df.reset_index() - 索引重置
df2 = df1.reset_index(drop=True)
import numpy as np
import pandas as pd
df = pd.DataFrame(data=[{"A":"one", "B":"a", "C":11}, {"A":"two", "B":np.nan, "C":22}, {"A":"one", "B":1, "C":12}])
print(df)
df1 = df.dropna()
print(df1)
df2 = df1.reset_index(drop=True)
print(df2)