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的破解拼图验证码的办法,需要的可以参考一下2022-02-02python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案
这篇文章主要介绍了python 对任意数据和曲线进行拟合并求出函数表达式的三种解决方案,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2020-02-02python实现把两个二维array叠加成三维array示例
今天小编就为大家分享一篇python实现把两个二维array叠加成三维array示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2019-11-11使用python修改文件并立即写回到原始位置操作(inplace读写)
这篇文章主要介绍了使用python修改文件并立即写回到原始位置操作(inplace读写),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-06-06
最新评论