pandas.DataFrame.dropna#

DataFrame.dropna(*, axis=0, how=<no_default>, thresh=<no_default>, subset=None, inplace=False, ignore_index=False)[源]#

删除缺失值。

有关哪些值被视为缺失值以及如何处理缺失值,请参阅 用户指南

参数:
axis{0 或 ‘index’, 1 或 ‘columns’}, 默认为 0

确定是否删除包含缺失值的行或列。

  • 0 或 ‘index’:删除包含缺失值的行。

  • 1 或 ‘columns’:删除包含缺失值的列。

只允许一个轴。

how{‘any’, ‘all’}, 默认 ‘any’

确定何时删除 DataFrame 中的行或列,当我们至少有一个 NA 或所有值都是 NA 时。

  • ‘any’:如果存在任何 NA 值,则删除该行或列。

  • ‘all’:如果所有值都是 NA,则删除该行或列。

threshint, 可选

要求有这么多非 NA 值。不能与 how 结合使用。

subset列标签或标签的可迭代对象,可选

要在其他轴上考虑的标签,例如,如果您要删除行,这些将是包含在内的列的列表。

inplacebool, default False

是否修改 DataFrame 而不是创建新 DataFrame。

ignore_indexbool, 默认为 False

如果为 True,则结果轴将标记为 0, 1, ..., n - 1。

版本 2.0.0 中已添加。

返回:
DataFrame 或 None

从 DataFrame 中删除 NA 条目的 DataFrame,或者如果 inplace=True 则为 None。

另请参阅

DataFrame.isna

指示缺失值。

DataFrame.notna

指示存在的(非缺失)值。

DataFrame.fillna

替换缺失值。

Series.dropna

删除缺失值。

Index.dropna

删除缺失的索引。

示例

>>> df = pd.DataFrame(
...     {
...         "name": ["Alfred", "Batman", "Catwoman"],
...         "toy": [np.nan, "Batmobile", "Bullwhip"],
...         "born": [pd.NaT, pd.Timestamp("1940-04-25"), pd.NaT],
...     }
... )
>>> df
       name        toy       born
0    Alfred        NaN        NaT
1    Batman  Batmobile 1940-04-25
2  Catwoman   Bullwhip        NaT

删除至少有一个元素缺失的行。

>>> df.dropna()
     name        toy       born
1  Batman  Batmobile 1940-04-25

删除至少有一个元素缺失的列。

>>> df.dropna(axis="columns")
       name
0    Alfred
1    Batman
2  Catwoman

删除所有元素都缺失的行。

>>> df.dropna(how="all")
       name        toy       born
0    Alfred        NaN        NaT
1    Batman  Batmobile 1940-04-25
2  Catwoman   Bullwhip        NaT

仅保留具有至少 2 个非 NA 值的行。

>>> df.dropna(thresh=2)
       name        toy       born
1    Batman  Batmobile 1940-04-25
2  Catwoman   Bullwhip        NaT

定义在哪一列中查找缺失值。

>>> df.dropna(subset=["name", "toy"])
       name        toy       born
1    Batman  Batmobile 1940-04-25
2  Catwoman   Bullwhip        NaT