我需要删除某个列中没有值的所有行,即“null”。但问题是我不知道该列的名称。但是要知道这是第五列,所以我已经厌倦了使用一些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列中的所有空行,以便只保留填充的列,并删除顶部的垃圾行:
看到这张桌子了吗
您可以简单地通过传递
na_values
然后执行drop_na
来解析数据。要处理顶部的垃圾行,可以在读取csv时使用skiprows
。下面是可能帮助您实现上述目标的示例代码阅读csv
虽然我相信默认情况下null被作为na值,但是为了安全起见,您可以使用上面的值
然后,您可以基于列简单地删除na行
前两个版本有一个额外的
df[]
。您可以使用:或:
为了更明确地分解它,它们使用布尔索引。例如,第一个函数使用
df.iloc[:, 4].notna()
获得notna
的布尔索引,然后使用它过滤df
:相关问题 更多 >
编程相关推荐