我正在对具有96个变量的数据集进行EDA,这是更大的数据集的一部分,我希望将那些列中只有单个值的列删除。
data_SS.apply(pd.Series.nunique)#这表明我有十几个变量,其中只有一个值。它们不是相关变量。
我使用行标题定义了#列
columns = ['aaa', 'bbb', 'ccc', 'ddd' .....]
然后删除列。
data.drop(columns, inplace = True, axis = 1)
这完成了工作。但是我想知道是否有办法迭代pd.Series.nunique的输出,因为我基本上想删除输出值== 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]