Python Pandas实现删除指定行/列数据

 更新时间:2026年04月24日 09:30:50   作者:lucky科技汪  
这篇文章主要为大家详细介绍了如何通过Python Pandas实现删除指定行或列数据,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

dropna() 方法过滤任何含有缺失值的行

pandas.DataFrame里,如果一行数据有任意值为空,则过滤掉整行,这时候使用dropna()方法是合适的。下面的案例,任意列只要有一个为空数据,则整行都干掉。但是我们常常遇到的情况,是根据一个指标(一列)数据的情况,去过滤行数据,类似Excel里面的过滤漏斗,怎么办?

>>> import pandas as pd
>>> data = pd.DataFrame([[1.,6.5,3.],[1.],[],[6.5,3.]],index=list('abcd'),columns=list('def'))
>>> data
     d    e    f
a  1.0  6.5  3.0
b  1.0  NaN  NaN
c  NaN  NaN  NaN
d  6.5  3.0  NaN
>>> data.dropna() #任意列只要有一个为空数据,则整行都干掉
     d    e    f
a  1.0  6.5  3.0

dropna() 其他参数解析

我们引入了dropna()方法的其他参数。

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

参数说明:

axis:

  • axis=0: 删除包含缺失值的行
  • axis=1: 删除包含缺失值的列

how: 与axis配合使用

  • how=‘any’ :只要有缺失值出现,就删除该行或列
  • how=‘all’: 所有的值都缺失,才删除行或列

thresh: axis中至少有thresh个非缺失值,否则删除。比如 axis=0,thresh=10:标识如果该行中非缺失值的数量小于10,将删除改行

subset: list,在哪些列中查看是否有缺失值

inplace: 是否在原数据上操作。如果为真,返回None,否则返回新的copy,去掉了缺失值

>>> data.dropna(axis=0,subset=['e'])  #axis=0,删除行,在subset的列中进行查看
     d    e    f
a  1.0  6.5  3.0
d  6.5  3.0  NaN

方法二:替换并删除,Python pandas 如果某列值为空,过滤删除所在行数据

如上面的data数据,如果希望“e”列数值为空NaN时,删除对应行也就是“b、c”行数据,保留其他行,用dropna()似乎比较麻烦。 这个时候的思路是:

  • fillna()给空值填充一个数值(如999999)
  • index.tolist()找出值为填充值所在行的索引
  • drop根据索引干掉对应的行
>>> data['e']=data['e'].fillna(999999)
>>> find_index=data[(data.e==999999)].index.tolist()
>>> find_index
['b', 'c']
>>> data.drop(find_index)
     d    e    f
a  1.0  6.5  3.0
d  6.5  3.0  NaN

drop()函数

在 pandas 中,删除指定的行或列最常用的方法是 drop() 函数。此外,还可以通过 delpop、条件筛选等方式实现。下面分别介绍。

删除列

1. 使用 drop 删除列(推荐)

import pandas as pd
df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6], 'C': [7,8,9]})
# 删除单列(不修改原 DataFrame,返回新对象)
df_new = df.drop('B', axis=1)
# 删除多列
df_new = df.drop(['B', 'C'], axis=1)
# 直接修改原 DataFrame(inplace=True)
df.drop('B', axis=1, inplace=True)

2. 使用 columns 参数(更直观)

df.drop(columns=['B', 'C'], inplace=True)

3. 使用 del 语句

del df['B']   # 直接删除列,修改原 DataFrame

4. 使用 pop 方法(会返回删除的列)

removed_col = df.pop('B')   # 删除列并返回 Series

删除行

1. 按行索引标签删除

df = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6]}, index=['x', 'y', 'z'])

# 删除单行
df.drop('y', inplace=True)

# 删除多行
df.drop(['x', 'z'], inplace=True)

2. 按位置删除(行号

# 删除第 2 行(索引为 1)
df.drop(df.index[1], inplace=True)

# 删除前 2 行
df.drop(df.index[:2], inplace=True)

3. 按条件删除行(最常用)

df = pd.DataFrame({'年龄': [18, 25, 30, 22], '分数': [85, 92, 78, 88]})

# 删除年龄大于 25 的行
df_filtered = df[df['年龄'] <= 25]   # 保留条件为 True 的行

# 或者用 drop + 条件索引
df.drop(df[df['年龄'] > 25].index, inplace=True)

删除含缺失值的行/列

1. 删除所有含 NaN 的行

df.dropna()                 # 任何一行有 NaN 就删除
df.dropna(how='all')        # 仅当一行全为 NaN 才删除
df.dropna(thresh=2)         # 至少保留 2 个非 NaN 值

2. 删除所有含 NaN 的列

df.dropna(axis=1)

注意事项

inplace=True 会直接修改原 DataFrame,否则返回新对象。

删除行/列时,如果指定的索引/列名不存在,会报错。可以添加 errors='ignore' 避免:

df.drop('不存在的列', axis=1, errors='ignore')

条件删除更推荐使用布尔索引(df[条件]),而不是 drop,因为可读性更好。

到此这篇关于Python Pandas实现删除指定行/列数据的文章就介绍到这了,更多相关Python Pandas删除指定数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python基础之模块相关知识总结

    Python基础之模块相关知识总结

    今天带大家复习Python基础知识,文中对模块相关知识介绍的非常详细,对正在学习python基础的小伙伴们很有帮助,需要的朋友可以参考下
    2021-05-05
  • 基于Python实现中秋佳节月饼抢购脚本

    基于Python实现中秋佳节月饼抢购脚本

    这篇文章主要介绍了Python版中秋佳节月饼抢购脚本,今天要用的是一个测试工具的库Selenium,今天我们就是用它去实现自动化抢购月饼,其实就是用这个工具"模拟"人为操作浏览器相应的操作,比如登陆,勾选购物车商品,下单购买等等操作,需要的朋友可以参考下
    2022-09-09
  • cmd运行python文件时对结果进行保存的方法

    cmd运行python文件时对结果进行保存的方法

    今天小编就为大家分享一篇cmd运行python文件时对结果进行保存的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 8段用于数据清洗Python代码(小结)

    8段用于数据清洗Python代码(小结)

    这篇文章主要介绍了8段用于数据清洗Python代码(小结),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • PyTorch模型调试与故障排除指南

    PyTorch模型调试与故障排除指南

    在当代深度学习领域,PyTorch 已成为开发和训练神经网络的主要框架之一,然而随着模型复杂度的增加和数据规模的扩大,开发者常常面临各种调试和优化挑战,本文旨在为 PyTorch 开发者提供一个全面的调试指南,涵盖从基础概念到高级技术的广泛内容,需要的朋友可以参考下
    2024-09-09
  • 通过Python的filestools库给图片添加全图水印的示例详解

    通过Python的filestools库给图片添加全图水印的示例详解

    这篇文章主要介绍了通过Python的filestools库给图片添加全图水印,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Python字符串格式化方式

    Python字符串格式化方式

    这篇文章主要介绍了Python字符串格式化方式,字符串格式化在我们的开发过程中被广泛的应用,因此也是我们要重点掌握的内容之一,下文相关介绍,需要的朋友可以参考一下
    2022-04-04
  • Python数据可视化:箱线图多种库画法

    Python数据可视化:箱线图多种库画法

    这篇文章主要介绍了Python数据可视化箱线图多种库画法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • Python实现GPU加速图像处理的代码详解

    Python实现GPU加速图像处理的代码详解

    这篇文章主要为大家详细介绍了Python实现GPU加速图像处理的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-04-04
  • python实现人脸识别经典算法(一) 特征脸法

    python实现人脸识别经典算法(一) 特征脸法

    这篇文章主要为大家详细介绍了python实现人脸识别经典算法,特征脸法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03

最新评论