Pandas中df.dropna()详解

df.dropna() 是 Pandas 中用于删除包含缺失值 (NaNNone) 的行或列的函数。它可以根据不同的参数设置灵活地删除数据中的缺失值。

基本语法:

DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

参数说明:

  1. axis: 指定沿着哪个轴删除缺失值。

    • axis=0:删除包含缺失值的行(默认)。
    • axis=1:删除包含缺失值的列。
  2. how: 指定删除行或列的条件(仅当 axis=0 时作用于行,axis=1 时作用于列)。

    • 'any':只要存在缺失值,删除该行或列(默认)。
    • 'all':仅当该行或列的所有值都是缺失值时,才删除。
  3. thresh: 保留行/列的非缺失值的最小数量。如果某行或某列中非缺失值的数量少于 thresh,则会被删除。例如,thresh=2 表示该行或列中必须至少有 2 个非缺失值,否则删除。

  4. subset: 指定检查缺失值的列或行的子集。只有这些列(如果 axis=0)或这些行(如果 axis=1)中的缺失值才会被考虑。

  5. inplace: 是否直接在原数据上进行操作,还是返回一个新的 DataFrame

    • inplace=False(默认):返回一个删除了缺失值后的新 DataFrame,不修改原数据。
    • inplace=True:直接修改原数据,不返回新的 DataFrame

示例:

  1. 删除包含缺失值的行(默认行为):

    import pandas as pd
    data = {'A': [1, 2, None], 'B': [4, None, None], 'C': [7, 8, 9]}
    df = pd.DataFrame(data)
    # 删除任何包含缺失值的行
    df_cleaned = df.dropna()
    print(df_cleaned)
    

    输出:

       A    B  C
    0  1.0  4.0  7
    
  2. 删除包含缺失值的列

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

    输出:

       C
    0  7
    1  8
    2  9
    
  3. how='all' 删除全为缺失值的行或列

    df_cleaned = df.dropna(axis=0, how='all')
    print(df_cleaned)
    

    输出:

       A    B  C
    0  1.0  4.0  7
    1  2.0  NaN  8
    2  NaN  NaN  9
    

    这里并没有删除任何行,因为没有行完全由缺失值组成。

  4. 使用 thresh 保留至少有一定数量非缺失值的行

    df_cleaned = df.dropna(thresh=2)
    print(df_cleaned)
    

    输出:

       A    B  C
    0  1.0  4.0  7
    1  2.0  NaN  8
    
  5. 指定 subset 参数检查某些列

    df_cleaned = df.dropna(subset=['A', 'B'])
    print(df_cleaned)
    

    输出:

       A    B  C
    0  1.0  4.0  7
    1  2.0  NaN  8
    
  6. inplace=True 修改原数据

    df.dropna(inplace=True)
    print(df)
    

    此时,df 自身已经被修改为删除了包含缺失值的行的状态。

总结:

dropna() 是 Pandas 中非常强大的函数,用于根据不同条件灵活地删除包含缺失值的行或列。通过合理配置参数,你可以根据特定需求处理缺失值的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

肥猪猪爸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值