文章目录
- import pandas as pd import numpy as np df = pd.DataFrame({ ‘A’: [1, np.nan, 3], ‘B’: [‘x’, np.nan, ‘z’], ‘C’: [10, 20, 30] }) cleaned_df = df.dropna() print(cleaned_df) 输出: A B C0 1.0 x 102 3.0 z 30
- cleaned_df = df.dropna(axis=1) print(cleaned_df) 输出: C0 101 202 30
- cleaned_df = df.dropna(how=’all’)
- cleaned_df = df.dropna(thresh=2)
- cleaned_df = df.dropna(subset=[‘A’, ‘B’])
目录
- 前言
- 1. 基本语法
- 2. 核心参数详解
- 3. 常见使用场景
- (1) 删除所有含缺失值的行(默认行为)
- (2) 删除所有含缺失值的列
- (3) 仅当整行全为缺失值时删除
- (4) 保留至少2个非缺失值的行
- (5) 仅检查特定列的缺失值
- 4. 注意事项
- 5. 可视化对比
- 总结
在 Pandas 中,DataFrame.dropna() 用于删除缺失值(NaN 或 None),是数据清洗的关键操作。以下是详细用法和常见场景:
cleaned_df = df.dropna(
axis=0, # 删除行(默认)或列(axis=1)
how='any', # 'any'(默认,存在缺失即删除)或 'all'(全为缺失才删除)
thresh=None, # 保留非缺失值数量≥thresh的行/列
subset=None, # 仅检查指定列的缺失情况
inplace=False # 是否原地修改(False时返回新DataFrame)
)
| 参数 | 说明 | 示例 |
|---|---|---|
| axis | 0 或 'index':删除包含缺失值的行(默认)1 或 'columns':删除列 |
df.dropna(axis=1) |
| how | 'any':行/列中任一缺失即删除'all':行/列全部缺失才删除 |
df.dropna(how='all') |
| thresh | 保留至少含 thresh 个非缺失值的行/列(优先级高于 how) |
df.dropna(thresh=3) |
| subset | 仅对指定列(列表形式)检查缺失值 | df.dropna(subset=['Age', 'Salary']) |
| inplace | True:直接修改原DataFrame,不返回新对象False:返回新DataFrame(默认) |
df.dropna(inplace=True) |
import pandas as pd
import numpy as np
df = pd.DataFrame({
'A': [1, np.nan, 3],
'B': ['x', np.nan, 'z'],
'C': [10, 20, 30]
})
cleaned_df = df.dropna()
print(cleaned_df)
输出:
A B C
0 1.0 x 10
2 3.0 z 30
cleaned_df = df.dropna(axis=1)
print(cleaned_df)
输出:
C
0 10
1 20
2 30
cleaned_df = df.dropna(how='all')
cleaned_df = df.dropna(thresh=2)
cleaned_df = df.dropna(subset=['A', 'B'])
- 缺失值类型:Pandas 将
None 和 np.nan 均视为缺失值。
- 性能优化:对大型DataFrame,
thresh 比 how 更高效。
- 替代方案:若不想删除数据,可用
df.fillna() 填充缺失值。
None 和 np.nan 均视为缺失值。thresh 比 how 更高效。df.fillna() 填充缺失值。
原始数据 (df):
| A | B | C |
|---|---|---|
| 1.0 | ‘x’ | 10 |
| NaN | NaN | 20 |
| 3.0 | ‘z’ | 30 |
执行 df.dropna() 后:
| A | B | C |
|---|---|---|
| 1.0 | ‘x’ | 10 |
| 3.0 | ‘z’ | 30 |
通过灵活组合参数,dropna() 可以精准控制数据清洗的粒度,是处理缺失值的利器!
到此这篇关于Python pandas中DataFrame.dropna()删除缺失值用法的文章就介绍到这了,更多相关pandas DataFrame.dropna()删除缺失值内容请搜索风君子博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持风君子博客!
您可能感兴趣的文章:
- python 检查数据中是否有缺失值,删除缺失值的方式
- Python Pandas中缺失值NaN的判断,删除及替换
- pandas || df.dropna() 缺失值删除操作
- Python 数据清洗删除缺失值替换缺失值详情
- Pandas缺失值删除df.dropna()的使用
- Python Pandas删除替换并提取其中的缺失值NaN(dropna,fillna,isnull)