python - 如何从包含任何行中的特定值的数据框中删除列
问题描述
在 pandas 数据框中,我需要在任何行中找到包含零的列,然后删除该整列。
例如,如果我的数据框如下所示:
A B C D E F G H
0 1 0 1 0 1 1 1 1
1 0 1 1 1 1 0 1 1
我需要删除 A、B、D 和 F 列。我知道如何删除这些列,但是以编程方式识别带有零的列让我望而却步。
解决方案
您可以使用.loc
对数据框进行切片并对列执行布尔索引,检查其中有哪些:any
0
df.loc[:,~(df==0).any()]
C E G H
0 1 1 1 1
1 1 1 1 1
或者等效地你可以这样做:
df.loc[:,(df!=0).all()]
推荐阅读
- bash - 打印一个月内同一时间段内平均登录系统的用户数的脚本
- c - 是否使用联合未定义行为访问结构上的特定数组索引?
- amazon-web-services - Amazon Redshift:当找到的表 id 不匹配时,如何将 `stl_load_errors` 行与正确的表名相关联?
- python - Python生成器中的反向next()
- delphi - 如何在 Delphi 中通过 IUPnPNAT 接口使用端口转发
- r - 有没有办法按子集循环回归?
- c++ - boost::spirit 两次使用相同的符号
- python - 如何使用来自另一个 csv 的信息更新 csv 的一个元素?
- android - Android:AudioRecord 和 DynamicsProcessing
- ios - 阿拉伯语本地化改变方向