探索性数据分析-使用pd.Series.nunique的输出删除所有列

时间:2019-02-06 19:07:15

标签: python pandas analysis

我正在对具有96个变量的数据集进行EDA,这是更大的数据集的一部分,我希望将那些列中只有单个值的列删除。

data_SS.apply(pd.Series.nunique)#这表明我有十几个变量,其中只有一个值。它们不是相关变量。

我使用行标题定义了#列

columns = ['aaa', 'bbb', 'ccc', 'ddd' .....]

然后删除列。

data.drop(columns, inplace = True, axis = 1)

这完成了工作。但是我想知道是否有办法迭代pd.Series.nunique的输出,因为我基本上想删除输出值== 1的列。我相信有一个更优雅的解决方案。

1 个答案:

答案 0 :(得分:0)

您可以通过为上述系列建立索引并删除所有列来创建列列表,

cols_to_drop = df1.loc[:,df1.nunique().eq(1)].columns
df1.drop(cols_to_drop, inplace = True, axis = 1)

找到要删除的列的另一种方法

s = df1.nunique().eq(1)
cols_to_drop = s.index[s]