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

Exploratory data analysis - dropping all columns by using output from pd.Series.nunique

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

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

我使用行 headers

定义了我的#columns
columns = ['aaa', 'bbb', 'ccc', 'ddd' .....]

然后删除列。

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

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

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

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]