ℹ️ Skipped - page is already crawled
| Filter | Status | Condition | Details |
|---|---|---|---|
| HTTP status | PASS | download_http_code = 200 | HTTP 200 |
| Age cutoff | PASS | download_stamp > now() - 6 MONTH | 0.3 months ago |
| History drop | PASS | isNull(history_drop_reason) | No drop reason |
| Spam/ban | PASS | fh_dont_index != 1 AND ml_spam_score = 0 | ml_spam_score=0 |
| Canonical | PASS | meta_canonical IS NULL OR = '' OR = src_unparsed | Not set |
| Property | Value |
|---|---|
| URL | https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html |
| Last Crawled | 2026-04-03 10:32:16 (9 days ago) |
| First Indexed | 2020-02-01 05:11:43 (6 years ago) |
| HTTP Status Code | 200 |
| Meta Title | pandas.DataFrame.dropna — pandas 3.0.2 documentation |
| Meta Description | null |
| Meta Canonical | null |
| Boilerpipe Text | DataFrame.
dropna
(
*
,
axis
=
0
,
how
=
<no_default>
,
thresh
=
<no_default>
,
subset
=
None
,
inplace
=
False
,
ignore_index
=
False
)
[source]
#
Remove missing values.
See the
User Guide
for more on which values are
considered missing, and how to work with missing data.
Parameters
:
axis
{0 or ‘index’, 1 or ‘columns’}, default 0
Determine if rows or columns which contain missing values are
removed.
0, or ‘index’ : Drop rows which contain missing values.
1, or ‘columns’ : Drop columns which contain missing value.
Only a single axis is allowed.
how
{‘any’, ‘all’}, default ‘any’
Determine if row or column is removed from DataFrame, when we have
at least one NA or all NA.
‘any’ : If any NA values are present, drop that row or column.
‘all’ : If all values are NA, drop that row or column.
thresh
int, optional
Require that many non-NA values. Cannot be combined with how.
subset
column label or iterable of labels, optional
Labels along other axis to consider, e.g. if you are dropping rows
these would be a list of columns to include.
inplace
bool, default False
Whether to modify the DataFrame rather than creating a new one.
ignore_index
bool, default
False
If
True
, the resulting axis will be labeled 0, 1, …, n - 1.
Added in version 2.0.0.
Returns
:
DataFrame or None
DataFrame with NA entries dropped from it or None if
inplace=True
.
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
Drop the rows where at least one element is missing.
>>>
df
.
dropna
()
name toy born
1 Batman Batmobile 1940-04-25
Drop the columns where at least one element is missing.
>>>
df
.
dropna
(
axis
=
"columns"
)
name
0 Alfred
1 Batman
2 Catwoman
Drop the rows where all elements are missing.
>>>
df
.
dropna
(
how
=
"all"
)
name toy born
0 Alfred NaN NaT
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT
Keep only the rows with at least 2 non-NA values.
>>>
df
.
dropna
(
thresh
=
2
)
name toy born
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT
Define in which columns to look for missing values.
>>>
df
.
dropna
(
subset
=
[
"name"
,
"toy"
])
name toy born
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT |
| Markdown | [Skip to main content](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html#main-content)
Back to top
Announcement: pandas 3.0 released! Read more [in the blog post](https://pandas.pydata.org/community/blog/pandas-3.0.html)
[ ](https://pandas.pydata.org/docs/index.html)
- [Getting started](https://pandas.pydata.org/docs/getting_started/index.html)
- [User Guide](https://pandas.pydata.org/docs/user_guide/index.html)
- [API reference](https://pandas.pydata.org/docs/reference/index.html)
- [Development](https://pandas.pydata.org/docs/development/index.html)
- [Release notes](https://pandas.pydata.org/docs/whatsnew/index.html)
Search `Ctrl`\+`K`
3\.0 (stable)
[dev](https://pandas.pydata.org/docs/dev/reference/api/pandas.DataFrame.dropna.html)[3\.0 (stable)](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html)[2\.3](https://pandas.pydata.org/pandas-docs/version/2.3/reference/api/pandas.DataFrame.dropna.html)[2\.2](https://pandas.pydata.org/pandas-docs/version/2.2/reference/api/pandas.DataFrame.dropna.html)[2\.1](https://pandas.pydata.org/pandas-docs/version/2.1/reference/api/pandas.DataFrame.dropna.html)[2\.0](https://pandas.pydata.org/pandas-docs/version/2.0/reference/api/pandas.DataFrame.dropna.html)[1\.5](https://pandas.pydata.org/pandas-docs/version/1.5/reference/api/pandas.DataFrame.dropna.html)[1\.4](https://pandas.pydata.org/pandas-docs/version/1.4/reference/api/pandas.DataFrame.dropna.html)[1\.3](https://pandas.pydata.org/pandas-docs/version/1.3/reference/api/pandas.DataFrame.dropna.html)[1\.2](https://pandas.pydata.org/pandas-docs/version/1.2/reference/api/pandas.DataFrame.dropna.html)[1\.1](https://pandas.pydata.org/pandas-docs/version/1.1/reference/api/pandas.DataFrame.dropna.html)[1\.0](https://pandas.pydata.org/pandas-docs/version/1.0/reference/api/pandas.DataFrame.dropna.html)
- [GitHub](https://github.com/pandas-dev/pandas)
- [X](https://x.com/pandas_dev)
- [Mastodon](https://fosstodon.org/@pandas_dev)
Search `Ctrl`\+`K`
- [Getting started](https://pandas.pydata.org/docs/getting_started/index.html)
- [User Guide](https://pandas.pydata.org/docs/user_guide/index.html)
- [API reference](https://pandas.pydata.org/docs/reference/index.html)
- [Development](https://pandas.pydata.org/docs/development/index.html)
- [Release notes](https://pandas.pydata.org/docs/whatsnew/index.html)
3\.0 (stable)
[dev](https://pandas.pydata.org/docs/dev/reference/api/pandas.DataFrame.dropna.html)[3\.0 (stable)](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html)[2\.3](https://pandas.pydata.org/pandas-docs/version/2.3/reference/api/pandas.DataFrame.dropna.html)[2\.2](https://pandas.pydata.org/pandas-docs/version/2.2/reference/api/pandas.DataFrame.dropna.html)[2\.1](https://pandas.pydata.org/pandas-docs/version/2.1/reference/api/pandas.DataFrame.dropna.html)[2\.0](https://pandas.pydata.org/pandas-docs/version/2.0/reference/api/pandas.DataFrame.dropna.html)[1\.5](https://pandas.pydata.org/pandas-docs/version/1.5/reference/api/pandas.DataFrame.dropna.html)[1\.4](https://pandas.pydata.org/pandas-docs/version/1.4/reference/api/pandas.DataFrame.dropna.html)[1\.3](https://pandas.pydata.org/pandas-docs/version/1.3/reference/api/pandas.DataFrame.dropna.html)[1\.2](https://pandas.pydata.org/pandas-docs/version/1.2/reference/api/pandas.DataFrame.dropna.html)[1\.1](https://pandas.pydata.org/pandas-docs/version/1.1/reference/api/pandas.DataFrame.dropna.html)[1\.0](https://pandas.pydata.org/pandas-docs/version/1.0/reference/api/pandas.DataFrame.dropna.html)
- [GitHub](https://github.com/pandas-dev/pandas)
- [X](https://x.com/pandas_dev)
- [Mastodon](https://fosstodon.org/@pandas_dev)
- [Input/output](https://pandas.pydata.org/docs/reference/io.html)
- [General functions](https://pandas.pydata.org/docs/reference/general_functions.html)
- [Series](https://pandas.pydata.org/docs/reference/series.html)
- [DataFrame](https://pandas.pydata.org/docs/reference/frame.html)
- [pandas.DataFrame](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.html)
- [pandas.DataFrame.index](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.index.html)
- [pandas.DataFrame.columns](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.columns.html)
- [pandas.DataFrame.dtypes](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dtypes.html)
- [pandas.DataFrame.info](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.info.html)
- [pandas.DataFrame.select\_dtypes](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.select_dtypes.html)
- [pandas.DataFrame.values](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.values.html)
- [pandas.DataFrame.axes](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.axes.html)
- [pandas.DataFrame.ndim](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.ndim.html)
- [pandas.DataFrame.size](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.size.html)
- [pandas.DataFrame.shape](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.shape.html)
- [pandas.DataFrame.memory\_usage](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.memory_usage.html)
- [pandas.DataFrame.empty](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.empty.html)
- [pandas.DataFrame.set\_flags](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.set_flags.html)
- [pandas.DataFrame.astype](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.astype.html)
- [pandas.DataFrame.convert\_dtypes](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.convert_dtypes.html)
- [pandas.DataFrame.infer\_objects](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.infer_objects.html)
- [pandas.DataFrame.copy](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.copy.html)
- [pandas.DataFrame.to\_numpy](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_numpy.html)
- [pandas.DataFrame.head](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.head.html)
- [pandas.DataFrame.at](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.at.html)
- [pandas.DataFrame.iat](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iat.html)
- [pandas.DataFrame.loc](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.loc.html)
- [pandas.DataFrame.iloc](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iloc.html)
- [pandas.DataFrame.insert](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.insert.html)
- [pandas.DataFrame.\_\_iter\_\_](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.__iter__.html)
- [pandas.DataFrame.items](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.items.html)
- [pandas.DataFrame.keys](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.keys.html)
- [pandas.DataFrame.iterrows](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iterrows.html)
- [pandas.DataFrame.itertuples](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.itertuples.html)
- [pandas.DataFrame.pop](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.pop.html)
- [pandas.DataFrame.tail](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.tail.html)
- [pandas.DataFrame.xs](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.xs.html)
- [pandas.DataFrame.get](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.get.html)
- [pandas.DataFrame.isin](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.isin.html)
- [pandas.DataFrame.where](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.where.html)
- [pandas.DataFrame.mask](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.mask.html)
- [pandas.DataFrame.query](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.query.html)
- [pandas.DataFrame.isetitem](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.isetitem.html)
- [pandas.DataFrame.\_\_add\_\_](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.__add__.html)
- [pandas.DataFrame.add](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.add.html)
- [pandas.DataFrame.sub](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sub.html)
- [pandas.DataFrame.mul](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.mul.html)
- [pandas.DataFrame.div](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.div.html)
- [pandas.DataFrame.truediv](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.truediv.html)
- [pandas.DataFrame.floordiv](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.floordiv.html)
- [pandas.DataFrame.mod](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.mod.html)
- [pandas.DataFrame.pow](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.pow.html)
- [pandas.DataFrame.dot](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dot.html)
- [pandas.DataFrame.radd](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.radd.html)
- [pandas.DataFrame.rsub](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.rsub.html)
- [pandas.DataFrame.rmul](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.rmul.html)
- [pandas.DataFrame.rdiv](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.rdiv.html)
- [pandas.DataFrame.rtruediv](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.rtruediv.html)
- [pandas.DataFrame.rfloordiv](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.rfloordiv.html)
- [pandas.DataFrame.rmod](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.rmod.html)
- [pandas.DataFrame.rpow](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.rpow.html)
- [pandas.DataFrame.lt](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.lt.html)
- [pandas.DataFrame.gt](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.gt.html)
- [pandas.DataFrame.le](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.le.html)
- [pandas.DataFrame.ge](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.ge.html)
- [pandas.DataFrame.ne](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.ne.html)
- [pandas.DataFrame.eq](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.eq.html)
- [pandas.DataFrame.combine](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.combine.html)
- [pandas.DataFrame.combine\_first](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.combine_first.html)
- [pandas.DataFrame.apply](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.apply.html)
- [pandas.DataFrame.map](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.map.html)
- [pandas.DataFrame.pipe](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.pipe.html)
- [pandas.DataFrame.agg](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.agg.html)
- [pandas.DataFrame.aggregate](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.aggregate.html)
- [pandas.DataFrame.transform](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.transform.html)
- [pandas.DataFrame.groupby](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.groupby.html)
- [pandas.DataFrame.rolling](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.rolling.html)
- [pandas.DataFrame.expanding](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.expanding.html)
- [pandas.DataFrame.ewm](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.ewm.html)
- [pandas.DataFrame.abs](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.abs.html)
- [pandas.DataFrame.all](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.all.html)
- [pandas.DataFrame.any](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.any.html)
- [pandas.DataFrame.clip](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.clip.html)
- [pandas.DataFrame.corr](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.corr.html)
- [pandas.DataFrame.corrwith](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.corrwith.html)
- [pandas.DataFrame.count](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.count.html)
- [pandas.DataFrame.cov](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.cov.html)
- [pandas.DataFrame.cummax](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.cummax.html)
- [pandas.DataFrame.cummin](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.cummin.html)
- [pandas.DataFrame.cumprod](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.cumprod.html)
- [pandas.DataFrame.cumsum](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.cumsum.html)
- [pandas.DataFrame.describe](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.describe.html)
- [pandas.DataFrame.diff](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.diff.html)
- [pandas.DataFrame.eval](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.eval.html)
- [pandas.DataFrame.kurt](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.kurt.html)
- [pandas.DataFrame.kurtosis](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.kurtosis.html)
- [pandas.DataFrame.max](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.max.html)
- [pandas.DataFrame.mean](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.mean.html)
- [pandas.DataFrame.median](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.median.html)
- [pandas.DataFrame.min](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.min.html)
- [pandas.DataFrame.mode](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.mode.html)
- [pandas.DataFrame.pct\_change](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.pct_change.html)
- [pandas.DataFrame.prod](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.prod.html)
- [pandas.DataFrame.product](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.product.html)
- [pandas.DataFrame.quantile](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.quantile.html)
- [pandas.DataFrame.rank](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.rank.html)
- [pandas.DataFrame.round](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.round.html)
- [pandas.DataFrame.sem](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sem.html)
- [pandas.DataFrame.skew](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.skew.html)
- [pandas.DataFrame.sum](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sum.html)
- [pandas.DataFrame.std](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.std.html)
- [pandas.DataFrame.var](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.var.html)
- [pandas.DataFrame.nunique](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.nunique.html)
- [pandas.DataFrame.value\_counts](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.value_counts.html)
- [pandas.DataFrame.add\_prefix](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.add_prefix.html)
- [pandas.DataFrame.add\_suffix](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.add_suffix.html)
- [pandas.DataFrame.align](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.align.html)
- [pandas.DataFrame.at\_time](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.at_time.html)
- [pandas.DataFrame.between\_time](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.between_time.html)
- [pandas.DataFrame.drop](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.drop.html)
- [pandas.DataFrame.drop\_duplicates](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.drop_duplicates.html)
- [pandas.DataFrame.duplicated](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.duplicated.html)
- [pandas.DataFrame.equals](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.equals.html)
- [pandas.DataFrame.filter](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.filter.html)
- [pandas.DataFrame.idxmax](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.idxmax.html)
- [pandas.DataFrame.idxmin](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.idxmin.html)
- [pandas.DataFrame.reindex](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.reindex.html)
- [pandas.DataFrame.reindex\_like](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.reindex_like.html)
- [pandas.DataFrame.rename](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.rename.html)
- [pandas.DataFrame.rename\_axis](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.rename_axis.html)
- [pandas.DataFrame.reset\_index](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.reset_index.html)
- [pandas.DataFrame.sample](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sample.html)
- [pandas.DataFrame.set\_axis](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.set_axis.html)
- [pandas.DataFrame.set\_index](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.set_index.html)
- [pandas.DataFrame.take](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.take.html)
- [pandas.DataFrame.truncate](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.truncate.html)
- [pandas.DataFrame.bfill](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.bfill.html)
- [pandas.DataFrame.dropna](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html)
- [pandas.DataFrame.ffill](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.ffill.html)
- [pandas.DataFrame.fillna](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.fillna.html)
- [pandas.DataFrame.interpolate](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.interpolate.html)
- [pandas.DataFrame.isna](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.isna.html)
- [pandas.DataFrame.isnull](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.isnull.html)
- [pandas.DataFrame.notna](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.notna.html)
- [pandas.DataFrame.notnull](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.notnull.html)
- [pandas.DataFrame.replace](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.replace.html)
- [pandas.DataFrame.droplevel](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.droplevel.html)
- [pandas.DataFrame.pivot](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.pivot.html)
- [pandas.DataFrame.pivot\_table](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.pivot_table.html)
- [pandas.DataFrame.reorder\_levels](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.reorder_levels.html)
- [pandas.DataFrame.sort\_values](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sort_values.html)
- [pandas.DataFrame.sort\_index](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sort_index.html)
- [pandas.DataFrame.nlargest](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.nlargest.html)
- [pandas.DataFrame.nsmallest](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.nsmallest.html)
- [pandas.DataFrame.swaplevel](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.swaplevel.html)
- [pandas.DataFrame.stack](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.stack.html)
- [pandas.DataFrame.unstack](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.unstack.html)
- [pandas.DataFrame.melt](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.melt.html)
- [pandas.DataFrame.explode](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.explode.html)
- [pandas.DataFrame.squeeze](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.squeeze.html)
- [pandas.DataFrame.to\_xarray](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_xarray.html)
- [pandas.DataFrame.T](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.T.html)
- [pandas.DataFrame.transpose](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.transpose.html)
- [pandas.DataFrame.assign](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.assign.html)
- [pandas.DataFrame.compare](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.compare.html)
- [pandas.DataFrame.join](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.join.html)
- [pandas.DataFrame.merge](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.merge.html)
- [pandas.DataFrame.update](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.update.html)
- [pandas.DataFrame.asfreq](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.asfreq.html)
- [pandas.DataFrame.asof](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.asof.html)
- [pandas.DataFrame.shift](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.shift.html)
- [pandas.DataFrame.first\_valid\_index](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.first_valid_index.html)
- [pandas.DataFrame.last\_valid\_index](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.last_valid_index.html)
- [pandas.DataFrame.resample](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.resample.html)
- [pandas.DataFrame.to\_period](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_period.html)
- [pandas.DataFrame.to\_timestamp](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_timestamp.html)
- [pandas.DataFrame.tz\_convert](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.tz_convert.html)
- [pandas.DataFrame.tz\_localize](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.tz_localize.html)
- [pandas.Flags](https://pandas.pydata.org/docs/reference/api/pandas.Flags.html)
- [pandas.DataFrame.attrs](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.attrs.html)
- [pandas.DataFrame.plot](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.html)
- [pandas.DataFrame.plot.area](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.area.html)
- [pandas.DataFrame.plot.bar](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.bar.html)
- [pandas.DataFrame.plot.barh](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.barh.html)
- [pandas.DataFrame.plot.box](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.box.html)
- [pandas.DataFrame.plot.density](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.density.html)
- [pandas.DataFrame.plot.hexbin](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.hexbin.html)
- [pandas.DataFrame.plot.hist](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.hist.html)
- [pandas.DataFrame.plot.kde](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.kde.html)
- [pandas.DataFrame.plot.line](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.line.html)
- [pandas.DataFrame.plot.pie](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.pie.html)
- [pandas.DataFrame.plot.scatter](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.plot.scatter.html)
- [pandas.DataFrame.boxplot](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.boxplot.html)
- [pandas.DataFrame.hist](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.hist.html)
- [pandas.DataFrame.sparse.density](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sparse.density.html)
- [pandas.DataFrame.sparse.from\_spmatrix](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sparse.from_spmatrix.html)
- [pandas.DataFrame.sparse.to\_coo](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sparse.to_coo.html)
- [pandas.DataFrame.sparse.to\_dense](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.sparse.to_dense.html)
- [pandas.DataFrame.from\_arrow](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.from_arrow.html)
- [pandas.DataFrame.from\_dict](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.from_dict.html)
- [pandas.DataFrame.from\_records](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.from_records.html)
- [pandas.DataFrame.to\_orc](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_orc.html)
- [pandas.DataFrame.to\_parquet](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_parquet.html)
- [pandas.DataFrame.to\_pickle](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_pickle.html)
- [pandas.DataFrame.to\_csv](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_csv.html)
- [pandas.DataFrame.to\_hdf](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_hdf.html)
- [pandas.DataFrame.to\_sql](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_sql.html)
- [pandas.DataFrame.to\_dict](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_dict.html)
- [pandas.DataFrame.to\_excel](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_excel.html)
- [pandas.DataFrame.to\_json](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_json.html)
- [pandas.DataFrame.to\_html](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_html.html)
- [pandas.DataFrame.to\_feather](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_feather.html)
- [pandas.DataFrame.to\_latex](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_latex.html)
- [pandas.DataFrame.to\_stata](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_stata.html)
- [pandas.DataFrame.to\_records](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_records.html)
- [pandas.DataFrame.to\_string](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_string.html)
- [pandas.DataFrame.to\_clipboard](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_clipboard.html)
- [pandas.DataFrame.to\_markdown](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_markdown.html)
- [pandas.DataFrame.style](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.style.html)
- [pandas.DataFrame.\_\_dataframe\_\_](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.__dataframe__.html)
- [pandas arrays, scalars, and data types](https://pandas.pydata.org/docs/reference/arrays.html)
- [Index objects](https://pandas.pydata.org/docs/reference/indexing.html)
- [Date offsets](https://pandas.pydata.org/docs/reference/offset_frequency.html)
- [Window](https://pandas.pydata.org/docs/reference/window.html)
- [GroupBy](https://pandas.pydata.org/docs/reference/groupby.html)
- [Resampling](https://pandas.pydata.org/docs/reference/resampling.html)
- [Style](https://pandas.pydata.org/docs/reference/style.html)
- [Plotting](https://pandas.pydata.org/docs/reference/plotting.html)
- [Options and settings](https://pandas.pydata.org/docs/reference/options.html)
- [Extensions](https://pandas.pydata.org/docs/reference/extensions.html)
- [Testing](https://pandas.pydata.org/docs/reference/testing.html)
- [Missing values](https://pandas.pydata.org/docs/reference/missing_value.html)
- [pandas typing aliases](https://pandas.pydata.org/docs/reference/aliases.html)
- [API reference](https://pandas.pydata.org/docs/reference/index.html)
- [DataFrame](https://pandas.pydata.org/docs/reference/frame.html)
- pandas.DataFrame.dropna
# pandas.DataFrame.dropna[\#](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html#pandas-dataframe-dropna "Link to this heading")
DataFrame.dropna(*\**, *axis\=0*, *how\=\<no\_default\>*, *thresh\=\<no\_default\>*, *subset\=None*, *inplace\=False*, *ignore\_index\=False*)[\[source\]](https://github.com/pandas-dev/pandas/blob/v3.0.2/pandas/core/frame.py#L7654-L7815)[\#](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html#pandas.DataFrame.dropna "Link to this definition")
Remove missing values.
See the [User Guide](https://pandas.pydata.org/docs/user_guide/missing_data.html#missing-data) for more on which values are considered missing, and how to work with missing data.
Parameters:
**axis**{0 or ‘index’, 1 or ‘columns’}, default 0
Determine if rows or columns which contain missing values are removed.
- 0, or ‘index’ : Drop rows which contain missing values.
- 1, or ‘columns’ : Drop columns which contain missing value.
Only a single axis is allowed.
**how**{‘any’, ‘all’}, default ‘any’
Determine if row or column is removed from DataFrame, when we have at least one NA or all NA.
- ‘any’ : If any NA values are present, drop that row or column.
- ‘all’ : If all values are NA, drop that row or column.
**thresh**int, optional
Require that many non-NA values. Cannot be combined with how.
**subset**column label or iterable of labels, optional
Labels along other axis to consider, e.g. if you are dropping rows these would be a list of columns to include.
**inplace**bool, default False
Whether to modify the DataFrame rather than creating a new one.
**ignore\_index**bool, default `False`
If `True`, the resulting axis will be labeled 0, 1, …, n - 1.
Added in version 2.0.0.
Returns:
DataFrame or None
DataFrame with NA entries dropped from it or None if `inplace=True`.
See also
[`DataFrame.isna`](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.isna.html#pandas.DataFrame.isna "pandas.DataFrame.isna")
Indicate missing values.
[`DataFrame.notna`](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.notna.html#pandas.DataFrame.notna "pandas.DataFrame.notna")
Indicate existing (non-missing) values.
[`DataFrame.fillna`](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.fillna.html#pandas.DataFrame.fillna "pandas.DataFrame.fillna")
Replace missing values.
[`Series.dropna`](https://pandas.pydata.org/docs/reference/api/pandas.Series.dropna.html#pandas.Series.dropna "pandas.Series.dropna")
Drop missing values.
[`Index.dropna`](https://pandas.pydata.org/docs/reference/api/pandas.Index.dropna.html#pandas.Index.dropna "pandas.Index.dropna")
Drop missing indices.
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
```
Drop the rows where at least one element is missing.
```
>>> df.dropna()
name toy born
1 Batman Batmobile 1940-04-25
```
Drop the columns where at least one element is missing.
```
>>> df.dropna(axis="columns")
name
0 Alfred
1 Batman
2 Catwoman
```
Drop the rows where all elements are missing.
```
>>> df.dropna(how="all")
name toy born
0 Alfred NaN NaT
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT
```
Keep only the rows with at least 2 non-NA values.
```
>>> df.dropna(thresh=2)
name toy born
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT
```
Define in which columns to look for missing values.
```
>>> df.dropna(subset=["name", "toy"])
name toy born
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT
```
[previous pandas.DataFrame.bfill](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.bfill.html "previous page")
[next pandas.DataFrame.ffill](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.ffill.html "next page")
On this page
- [`DataFrame.dropna()`](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html#pandas.DataFrame.dropna)
© 2026, pandas via [NumFOCUS, Inc.](https://numfocus.org/) Hosted by [OVHcloud](https://www.ovhcloud.com/).
Created using [Sphinx](https://www.sphinx-doc.org/) 9.0.4.
Built with the [PyData Sphinx Theme](https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html) 0.16.1. |
| Readable Markdown | DataFrame.dropna(*\**, *axis\=0*, *how\=\<no\_default\>*, *thresh\=\<no\_default\>*, *subset\=None*, *inplace\=False*, *ignore\_index\=False*)[\[source\]](https://github.com/pandas-dev/pandas/blob/v3.0.2/pandas/core/frame.py#L7654-L7815)[\#](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.dropna.html#pandas.DataFrame.dropna "Link to this definition")
Remove missing values.
See the [User Guide](https://pandas.pydata.org/docs/user_guide/missing_data.html#missing-data) for more on which values are considered missing, and how to work with missing data.
Parameters:
**axis**{0 or ‘index’, 1 or ‘columns’}, default 0
Determine if rows or columns which contain missing values are removed.
- 0, or ‘index’ : Drop rows which contain missing values.
- 1, or ‘columns’ : Drop columns which contain missing value.
Only a single axis is allowed.
**how**{‘any’, ‘all’}, default ‘any’
Determine if row or column is removed from DataFrame, when we have at least one NA or all NA.
- ‘any’ : If any NA values are present, drop that row or column.
- ‘all’ : If all values are NA, drop that row or column.
**thresh**int, optional
Require that many non-NA values. Cannot be combined with how.
**subset**column label or iterable of labels, optional
Labels along other axis to consider, e.g. if you are dropping rows these would be a list of columns to include.
**inplace**bool, default False
Whether to modify the DataFrame rather than creating a new one.
**ignore\_index**bool, default `False`
If `True`, the resulting axis will be labeled 0, 1, …, n - 1.
Added in version 2.0.0.
Returns:
DataFrame or None
DataFrame with NA entries dropped from it or None if `inplace=True`.
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
```
Drop the rows where at least one element is missing.
```
>>> df.dropna()
name toy born
1 Batman Batmobile 1940-04-25
```
Drop the columns where at least one element is missing.
```
>>> df.dropna(axis="columns")
name
0 Alfred
1 Batman
2 Catwoman
```
Drop the rows where all elements are missing.
```
>>> df.dropna(how="all")
name toy born
0 Alfred NaN NaT
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT
```
Keep only the rows with at least 2 non-NA values.
```
>>> df.dropna(thresh=2)
name toy born
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT
```
Define in which columns to look for missing values.
```
>>> df.dropna(subset=["name", "toy"])
name toy born
1 Batman Batmobile 1940-04-25
2 Catwoman Bullwhip NaT
``` |
| Shard | 68 (laksa) |
| Root Hash | 10355827761381095868 |
| Unparsed URL | org,pydata!pandas,/docs/reference/api/pandas.DataFrame.dropna.html s443 |