pandas - 如何根据其中的值数删除 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)
任何人都可以帮忙吗?谢谢
解决方案
一种方法可能是获取所有布尔值并删除的列,如下所示,如果列中的数据类型被正确分类,这将起作用。选择适当的传递数据类型 .dtypes
bool_col = []
for cols in df:
if df[col].dtypes == "bool":
non_floats.append(col)
df = df.drop(columns=non_floats)
推荐阅读
- python - python请求中默认的请求头是什么
- python - 如何在 CSV 标题和字典键之间循环操作
- java - 带有 JDK 10 的 Kotlin
- c# - 统一处理协程
- python - 跨 PySpark DataFrame 列的字符串匹配
- maven - 仅在 Maven 依赖项中包含必需的模块
- nginx - 如果使用 ngx.shared.dict,我会徘徊,是否有任何情况会使我的数据在插入 mysql 之前被覆盖?
- html - 一个项目中有多个 Servlet?
- android - 无法打开请求的套接字:地址已在使用中:bind-Android Studio
- android - Android AppBarLayout TabLayout