检测某些列并删除这些列

时间:2014-02-14 07:45:07

标签: python pandas

我有一个数据框,其中一些列(不是行)就像["","","",""]

我希望删除具有特征的那些列。

有没有一种有效的方法呢?

2 个答案:

答案 0 :(得分:0)

pandas中,它将是del df['columnname']

答案 1 :(得分:0)

要删除所有值为空的列,首先需要检测哪些列只包含空值。

所以我做了一个这样的示例数据框:

     empty  full  nanvalues  notempty
0              3        NaN         1
1              4        NaN         2

使用apply函数,我们可以将整列与空字符串进行比较,然后使用.all()方法进行汇总。

empties = (df.astype(str) == "").all()
empties

empty         True
full         False
nanvalues    False
notempty     False
dtype: bool

现在我们可以删除这些列

empty_mask = empties.index[empties]
df.drop(empty_mask, axis=1)

   full  nanvalues  notempty
0     3        NaN         1
1     4        NaN         2