pandas.DataFrame.dropna#

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

删除缺失值。

有关哪些值被视为缺失值以及如何处理缺失数据,请参阅 User Guide

Parameters:
axis{0 或 ‘index’, 1 或 ‘columns’}, default 0

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

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

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

只能允许一个轴。

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

当存在至少一个 NA 或所有值都是 NA 时,确定是删除该行还是该列。

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

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

threshint, optional

要求具有此数量的非 NA 值。不能与 how 组合使用。

subset列标签或标签序列,可选

要考虑的另一轴上的标签,例如;如果您正在删除行,那么这些将是包含的列的列表。

inplacebool,默认 False

是修改 DataFrame 还是创建新的 DataFrame。

ignore_index : bool, 默认 Falsebool, 默认

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

在 2.0.0 版本加入.

Returns:
DataFrame 或 None

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

参见

DataFrame.isna

指示缺失值。

DataFrame.notna

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

DataFrame.fillna

替换缺失值。

Series.dropna

删除缺失值。

Index.dropna

删除缺失的索引。

Examples

>>> 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