Python按指定列的空值删除行的操作代码

 更新时间:2024年01月25日 11:37:53   作者:对许  
这篇文章主要介绍了Python按指定列的空值删除行的操作代码,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧

1、按指定列的空值删除行

数据准备:

df = pd.DataFrame({'C1': [1, 2, 3, 4], 'C2': ['A', np.NaN, 'C', 'D'], 'C3': ['V1', 'V2', 'V3', np.NaN]})
print(df.to_string())
'''
   C1   C2   C3
0   1    A   V1
1   2  NaN   V2
2   3    C   V3
3   4    D  NaN
'''

我们知道,Pandas的dropna()方法可以删除包含空值或全为空值的行或列,例如:

# 删除包含空值的行
df_dropna = df.dropna(how='any')
print(df_dropna.to_string())
'''
   C1 C2  C3
0   1  A  V1
2   3  C  V3
'''

那么,如何按指定列的空值删除行而不影响其他有空值的列的空值所在的行?

# 删除指定列值为空的行,例如,删除C3列值为NaN的行
df.drop(df[df['C3'].isna()].index, inplace=True)
print(df.to_string())
'''
   C1   C2  C3
0   1    A  V1
1   2  NaN  V2
2   3    C  V3
'''

2、滑动窗口按指定列的值填充最前面的缺失值

Pandas实现类似Hive的滑动窗口如下:

# 按某列滑动(前提:DataFrame已经按照某列(如日期列、这里的C1列)升序排序)
df['V3_last'] = df['C3'].shift(1)
print(df.to_string())
'''
   C1   C2  C3 V3_last
0   1    A  V1    None
1   2  NaN  V2      V1
2   3    C  V3      V2
'''

那么,滑动后,最前面的空值我们要想使用指定列的值填充应该怎么操作呢?

# 平移后,最前面的空值使用当前平移列(C3列)的值填充
df['V3_last_fillna'] = df['C3'].shift(1).fillna(df['C3'])
print(df.to_string())
'''
   C1   C2  C3 V3_last V3_last_fillna
0   1    A  V1    None             V1
1   2  NaN  V2      V1             V1
2   3    C  V3      V2             V2
'''

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

相关文章

  • 详解Python结合Genetic Algorithm算法破解网易易盾拼图验证

    详解Python结合Genetic Algorithm算法破解网易易盾拼图验证

    很多网站在登录或者注册时都会遇到拼图验证码,这种拼图验证码实际上是多个小碎片经过重新组合成的一张整体。本文将和大家分享一个基于Python Genetic Algorithm的破解拼图验证码的办法,需要的可以参考一下
    2022-02-02
  • Python中集合类型(set)学习小结

    Python中集合类型(set)学习小结

    这篇文章主要介绍了Python中集合类型(set)学习小结,本文讲解了set的初始化、运算操作、基本方法等内容,需要的朋友可以参考下
    2015-01-01
  • python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案

    python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案

    这篇文章主要介绍了python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Python中的序列化详细解析

    Python中的序列化详细解析

    这篇文章主要介绍了Python中的序列化详细解析,序列化是指把程序中的一个类转化成一个标准化的格式,标准化的意义是这个格式可以跨程序,跨平台的被使用,而且保持其原有的内容,规范,需要的朋友可以参考下
    2023-11-11
  • PyCharm在新窗口打开项目的方法

    PyCharm在新窗口打开项目的方法

    今天小编就为大家分享一篇PyCharm在新窗口打开项目的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • python实现把两个二维array叠加成三维array示例

    python实现把两个二维array叠加成三维array示例

    今天小编就为大家分享一篇python实现把两个二维array叠加成三维array示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • python和C语言混合编程实例

    python和C语言混合编程实例

    这篇文章主要介绍了python和C语言混合编程实例,文中开发了一个tcp端口ping程序来介绍混合编程,需要的朋友可以参考下
    2014-06-06
  • 使用python修改文件并立即写回到原始位置操作(inplace读写)

    使用python修改文件并立即写回到原始位置操作(inplace读写)

    这篇文章主要介绍了使用python修改文件并立即写回到原始位置操作(inplace读写),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 浅谈python中常用的excel模块库

    浅谈python中常用的excel模块库

    本文主要介绍了python中常用的excel模块库,感兴趣的同学,可以参考下。
    2021-06-06
  • 分享Python字符串关键点

    分享Python字符串关键点

    字符串是 Python 中最常用的数据类型。我们可以使用引号来创建字符串,通过本篇文章给大家分享python字符串关键点相关资料,感兴趣的朋友一起学习吧
    2015-12-12

最新评论