探索性数据分析 - 使用 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]
我正在对一个包含 96 个变量的数据集进行 EDA,这是一个更大的数据集的一部分 dataset.I 我希望删除那些列中只有一个值的列。
data_SS.apply(pd.Series.nunique)# 这表明我有十几个变量,其中只有一个值。它们不是相关变量。
我使用行 headers
定义了我的#columnscolumns = ['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]