[Pandas] 筛选DataFrame含有空值的数据行
![](/assets/blank.gif)
数据准备
import pandas as pddf = pd.DataFrame([['ABC','Good',1],['FJZ',None,2],['FOC','Good',None]],columns=['Site','Remark','Quantity'])
df
注意:上述Remark字段中的数据类型为字符串str类型,空值取值为'None',Quantity字段中的数据类型为数值型,空值取值为nan
1.筛选指定单列中有空值的数据行
# 语法
df[pd.isnull(df[col])]
df[df[col].isnull()]
# 获取Remark字段为None的行
df_isnull_remark = df[df['Remark'].isnull()]
# 获取Quantity字段为None的行
df_isnull_quantity = df[df['Quantity'].isnull()]
df_isnull_remark
df_isnull_quantity
提示
筛选指定单列中没有空值的数据行
# 语法 df[pd.notnull(df[col])] df[df[col].notnull()]
# 获取Remark字段为非None的行 df_notnull_remark = df[df['Remark'].notnull()] # 获取Quantity字段为非None的行 df_notnull_quantity = df[df['Quantity'].notnull()]
df_notnull_remark
df_notnull_quantity
2.筛选指定多列中/全部列中满足所有列有空值的数据行
# 语法
df[df[[cols]].isnull().all(axis=1)]
df[pd.isnull(df[[cols]]).all(axis=1)]
在df基础上增加一行生成df1
df1 = pd.DataFrame([['ABC','Good',1],['FJZ',None,2],['FOC','Good',None],[None,None,None]],columns=['Site','Remark','Quantity'])
# 获取df1所有列有空值的数据行
all_df_isnull = df1[df1[['Site','Remark','Quantity']].isnull().all(axis=1)]
all_df_isnull
提示
筛选指定多列中/全部列中满足所有列没有空值的数据行
# 语法 df[df[[cols]].notnull().all(axis=1)] df[pd.notnull(df[[cols]]).all(axis=1)]
# 获取df1所有列没有空值的数据行 all_df_notnull = df1[df1[['Site','Remark','Quantity']].notnull().all(axis=1)]
all_df_notnull
3.筛选指定多列中/全部列中满足任意一列有空值的数据行
# 语法
df[df[[cols]].isnull().any(axis=1)]
df[pd.isnull(df[[cols]]).any(axis=1)]
df1(数据源)
# 获取df1所有列中满足任意一列有空值的数据行
any_df_isnull = df1[df1[['Site','Remark','Quantity']].isnull().any(axis=1)]
any_df_isnull
提示
筛选指定多列中/全部列中满足任意一列没有空值的数据行
# 语法 df[df[[cols]].notnull().any(axis=1)] df[pd.notnull(df[[cols]]).any(axis=1)]
# 获取df1所有列中满足任意一列没有空值的数据行 any_df_notnull = df1[df1[['Site','Remark','Quantity']].notnull().any(axis=1)]
any_df_notnull
Numpy里边查找NaN值的话,使用np.isnan()
Pabdas里边查找NaN值的话,使用.isna()或.isnull()
import pandas as pd
import numpy as npdf = pd.DataFrame({'site1': ['a', 'b', 'c', ''],'site2': ['a', np.nan, '', 'd'],'site3': ['a', 'b', 'c', 'd']})
df
df['contact_site'] = df['site1'] + df['site2'] + df['site3']
新增数据列后的df
res1 = df[df['site2'].isnull()]
res2 = df[df['site2'].isna()]
res3 = df[df['site2']=='']
res1
res2
res3
注意:res1和res2的结果相同,说明.isna()和.isnull()的作用等效
[Pandas] 筛选DataFrame含有空值的数据行相关推荐
- pandas使用query函数和sample函数、使用query函数筛选dataframe中的特定数据行并使用sample函数获取指定个数的随机抽样数据
pandas使用query函数和sample函数.使用query函数筛选dataframe中的特定数据行并使用sample函数获取指定个数的随机抽样数据(query dataframe and ran ...
- R语言使用subset函数基于组合逻辑筛选dataframe符合条件的数据行(select observations)、并指定需要保留的dataframe数据列或者字段
R语言使用subset函数基于组合逻辑筛选dataframe符合条件的数据行(select observations).并指定需要保留的dataframe数据列或者字段 目录
- pandas为dataframe添加新的数据行(rows)、在dataframe后面纵向添加一行数据(数据为列表list形式)、列有不匹配将会使用NA值进行填补
pandas为dataframe添加新的数据行(rows).在dataframe后面纵向添加一行数据(数据为列表list形式).列有不匹配将会使用NA值进行填补 目录
- pandas筛选dataframe列名称中包含特定字符串的数据列(select columns contains specifiec substring in dataframe)
pandas筛选dataframe列名称中包含特定字符串的数据列(select columns contains specifiec substring in dataframe) 目录 pandas ...
- python中Pandas之DataFrame索引、选取数据
目录 1.索引是什么 1.1 认识索引 1.2 自定义索引 2. 索引的简单使用 2.1 列索引 2.1.2 使用loc和iloc 2.2 行索引 2.2.1 使用[ : ] 2.2.2 使用.loc ...
- pandas将dataframe中的特定数据列的内容转化为列表list数据(convert dataframe column values into a list)
pandas将dataframe中的特定数据列的内容转化为列表list数据(convert dataframe column values into a list) 目录 pandas将datafra ...
- R语言筛选dataframe分组中值最大的行实战(Select the row with the maximum value in each group)
R语言筛选dataframe分组中值最大的行实战(Select the row with the maximum value in each group) 目录 R语言筛选dataframe分组中值最 ...
- R筛选dataframe时间范围内的数据
R筛选dataframe时间范围内的数据 目录 R筛选dataframe时间范围内的数据 两个日期之间的数据 某一日期之后的子集
- R语言dplyr包的select函数和everthing函数筛选dataframe中的所有数据列(all columns of the dataframe)
R语言dplyr包的select函数和everthing函数筛选dataframe中的所有数据列(all columns of the dataframe) 目录 R语言dplyr包的select函数 ...
最新文章
- .Net Core Cors中间件解析
- 你想过自己注定是个普通人吗?
- c语言单片机串口通讯,单片机C语言之串口通信协议
- SQL命令向表中添加列
- 图谱论(Spectral Graph Theory)基础
- yii2 获取模块名,控制名,动作方法名
- 采用POD以及DMD方法实现圆柱绕流流动分解(DMD篇)
- bat脚本注释多行_bat批处理的注释语句
- linux u盘 随身,教你安装CentOS到U盘,制作随身Linux系统
- SMC在线气动制图软件PneuDraw
- CodeForces - 1312E Array Shrinking
- CSS3旋转按钮html,一款纯css3实现的翻转按钮_html/css_WEB-ITnose
- 遭遇Trojan.PSW.OnlineGames、Trojan.HiJack.a、Trojan.PSW.ZhuXian.b等
- 绘制遗传图谱工具——MapChart
- 国内外大厂扑向AR-HUD,但抵达“智能汽车终局”仍隔数层纱
- Python学习之路:通过分片的方式修改列表的技巧(拓展知识)
- Carmack(卡马克)传奇的3D引擎开源代码
- MATLAB与SolidWorks联合仿真(1)
- 写得真励志,深度发展,成为不可替代的技术员
- 对于干涉仪二维测向的一些要点