如何在pandas中移除常量变量?

2 投票
1 回答
1213 浏览
提问于 2025-04-18 10:52

我有一个包含一万个变量的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 则表示直接在原来的数据框上进行修改,不会创建新的数据框。

撰写回答