首页 > 解决方案 > 如何根据其中的值数删除 pandas 列?

问题描述

事实证明,当尝试删除包含分类数据(0 和 1)的列时,我无法获得所需的结果。我尝试了几个过程,但它们都产生相同的结果:数据框本身包含所有列。

df1.drop([i for i in df1 if df1[i].nunique == 2], axis = 1, inplace = True)

这是我尝试过的一种方法。另一种如下:

df1.drop(df.columns[df.apply(lambda col: col.nunique == 2)], axis = 1)

任何人都可以帮忙吗?谢谢

标签: pandasdataframenumpydataset

解决方案


一种方法可能是获取所有布尔值并删除的列,如下所示,如果列中的数据类型被正确分类,这将起作用。选择适当的传递数据类型 .dtypes

bool_col = []
for cols in df:
    if df[col].dtypes == "bool":
        non_floats.append(col)
df = df.drop(columns=non_floats)

推荐阅读