python - 我需要删除某个列中没有值或为“null”的所有行:使用 Python 和 Pandas
问题描述
我需要删除某个列中没有值的所有行,即它是“null”的地方。但问题是我不知道列的名称。但是知道它是第 5 列,所以我已经厌倦了使用一些 iloc 方法,如“notna”和“notnull”(见下文)。我已经包含了我正在使用的数据类型的示例图像。我试图这样做的原因是因为在我试图摆脱的 csv 文件/数据框的顶部有不同数量的垃圾行。但是每次的行数都不同,所以我不能使用只会删除某个已知数量的标题行的东西。这就是为什么我试图删除某个列中的所有空行,因为我知道它也会删除我数据集顶部的所有垃圾行。
这些是我尝试使用的一些方法,但没有奏效。
df = df[df[df.iloc[:, 4]].notna()]
df = df[pd.notnull(df[df.iloc[:, 4])]
df = df.dropna(subset=[df.iloc[:, 5]])
因此,例如,在此图像中,我试图删除第 5 列(日期列)为空但列名称不是“日期”的所有行,因为顶部有垃圾行。我正在尝试删除第 5 列中的所有空行,以便只保留填充的列,并消除顶部的垃圾行:
请参阅此处的表格
解决方案
您的前两个版本有一个额外的df[]
. 您可以使用:
df = df[df.iloc[:, 4].notna()]
或者:
df = df[pd.notnull(df.iloc[:, 4])]
为了更明确地分解它,这些使用布尔索引。例如,第一个用于df.iloc[:, 4].notna()
获取布尔索引,notna
然后df
使用它进行过滤:
notna_boolean_index = df.iloc[:, 4].notna()
df = df.loc[notna_boolean_index] # can also leave out `.loc` for boolean indexes
推荐阅读
- swift - 关闭模式视图后如何重新加载 tableView?
- javascript - ExtJS - 我怎样才能有多个组件作为父母?
- java - 如何使用 Android Image Cropper 库直接只打开相机
- anaconda - 对 KVM 来宾的 anaconda 安装程序日志进行故障排除
- python - 如何在pycharm上仅打印Excel列的一部分?
- sql - 如何通过 JSON_VALUE 获取紧凑的 javascript 编号
- typescript - 受保护的子句仍然是“对象很可能为空”
- java - .jar库到android studio项目的动态连接
- node.js - 从外部链接访问站点时,内容安全策略使登录会话无效
- performance-testing - 如何在 loadrunner 的 ctrx_sync_on_window 中添加当前日期和时间?