如何在pandas中移除常量变量?
我有一个包含一万个变量的csv文件。
我想要删除所有那些不变的变量,或者说它们的标准差接近于零的变量。
接下来,我想把剩下的变量转换成一个numpy的ndarray格式。
我该怎么做呢?
1 个回答
0
首先,我们创建了一个空的列表,叫做 constant_vars
,用来存放那些常量变量。
接下来,我们用一个循环,遍历数据框 df
中的每一列。
if len(df[col].value_counts())==1:
constant_vars.append(col)
**或者你可以用列表推导式来简化这个过程:**
constant_vars=[col for col in list(df) if len(df[col].value_counts())==1]
这行代码的意思是:我们会检查每一列,如果这一列的值只有一种(也就是常量),就把它的名字放进 constant_vars
这个列表里。
然后,我们用 df.drop(constant_vars, axis=1, inplace=True)
这行代码来删除这些常量变量。
这里的 axis=1
表示我们要删除的是列,而 inplace=True
则表示直接在原来的数据框上进行修改,不会创建新的数据框。