当前位置: 代码网 > it编程>前端脚本>Python > Python pandas中DataFrame.dropna()删除缺失值用法实例

Python pandas中DataFrame.dropna()删除缺失值用法实例

2025年06月30日 Python 我要评论
前言在 pandas 中,dataframe.dropna()用于删除缺失值(nan 或 none),是数据清洗的关键操作。以下是详细用法和常见场景:1. 基本语法cleaned_df = df.dr

前言

在 pandas 中,dataframe.dropna() 用于删除缺失值(nan 或 none),是数据清洗的关键操作。以下是详细用法和常见场景:

1. 基本语法

cleaned_df = df.dropna(
    axis=0,          # 删除行(默认)或列(axis=1)
    how='any',       # 'any'(默认,存在缺失即删除)或 'all'(全为缺失才删除)
    thresh=none,     # 保留非缺失值数量≥thresh的行/列
    subset=none,     # 仅检查指定列的缺失情况
    inplace=false    # 是否原地修改(false时返回新dataframe)
)

2. 核心参数详解

参数说明示例
axis0 或 'index':删除包含缺失值的行(默认)
1 或 'columns':删除列
df.dropna(axis=1)
how'any':行/列中任一缺失即删除
'all':行/列全部缺失才删除
df.dropna(how='all')
thresh保留至少含 thresh 个非缺失值的行/列(优先级高于 howdf.dropna(thresh=3)
subset仅对指定列(列表形式)检查缺失值df.dropna(subset=['age', 'salary'])
inplacetrue:直接修改原dataframe,不返回新对象
false:返回新dataframe(默认)
df.dropna(inplace=true)

3. 常见使用场景

(1) 删除所有含缺失值的行(默认行为)

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

(2) 删除所有含缺失值的列

cleaned_df = df.dropna(axis=1)
print(cleaned_df)

输出

    c
0  10
1  20
2  30

(3) 仅当整行全为缺失值时删除

cleaned_df = df.dropna(how='all')

(4) 保留至少2个非缺失值的行

cleaned_df = df.dropna(thresh=2)

(5) 仅检查特定列的缺失值

cleaned_df = df.dropna(subset=['a', 'b'])

4. 注意事项

  • 缺失值类型:pandas 将 none 和 np.nan 均视为缺失值。
  • 性能优化:对大型dataframe,thresh 比 how 更高效。
  • 替代方案:若不想删除数据,可用 df.fillna() 填充缺失值。

5. 可视化对比

原始数据 (df):

abc
1.0‘x’10
nannan20
3.0‘z’30

执行 df.dropna() 后:

abc
1.0‘x’10
3.0‘z’30

通过灵活组合参数,dropna() 可以精准控制数据清洗的粒度,是处理缺失值的利器!

总结

到此这篇关于python pandas中dataframe.dropna()删除缺失值用法的文章就介绍到这了,更多相关pandas dataframe.dropna()删除缺失值内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com