繁体   English   中英

如何从 pandas 数据场中删除没有数据的列

[英]How to drop a column that has no data from a pandas datafarme

我读了一个文件,它有几个像这样的空白列:

在此处输入图像描述

原始数据作为文本:

id  stage   D1  D2  D3  D4  D5  D6
1   base    A                   
1   s1          2   2   4   5
1   s2          3   3   6   7
2   base    AA                  
2   s1          5   3   4   3
2   s2          3   3   2   4
2   s3          2   2   3   6
3   base    B                   
3   s1          4   4   4   5
4   base    BC  

我不知道空白列的名称,它们很多。

如何检测到 D2 为空白(此列中没有数据)然后将其删除?

我可以遍历列/行并找到哪些列是空白的,但我认为这不是在 Python 中执行此操作的正确方法。

在 Python 中这样做的正确方法是什么?

使用关键字how仅删除该列的所有行都为空的列

df = df.dropna(axis=1, how='all')

试试dropna ,这里的 thresh 要求列有一个不是 null 值。

df = df.dropna(thresh=1, aixs=1)

检查您的整个 dataframe 的 NULL 值

df.isnull().sum()

用于获取特定列的 NULL 值计数

df.isnull.sum()['D2']

要检查整个列是否为空,您可以等同于 dataframe 的长度

df.isnull.sum()['D2'] == len(df)

然后您可以删除所需的列

df.drop('D2',axis=1,inplace=True)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM