热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

在PandasDataFrame中选择包含至少一个True值的列的最佳解决方案

In[4]:df=pd.DataFrame({a:[True,False,True],b:[False,False,False],

In [4]: df = pd.DataFrame({'a': [True, False, True], 'b': [False, False, False],
...: 'c': [False, False, False], 'd': [False, True, False],
...: 'e': [False, False, False]})
In [5]: df
Out[5]:
a b c d e
0 True False False False False
1 False False False True False
2 True False False False False
In [6]: df[df.any()[df.any()].index]
Out[6]:
a d
0 True False
1 False True
2 True False

[6] 下的代码做了我想要的。然而,我的问题是:有更好的解决方案吗?也就是说,更简洁和/或更优雅。

回答


一种直接方法是将df.loc生成的掩码df.any()用作输入:

df.loc[:, df.any()]
a d
0 True False
1 False True
2 True False


另一种选择是索引df.columns

df[df.columns[df.any()]]

或者,df.keys()

df[df.keys()[df.any()]]

a d
0 True False
1 False True
2 True False






推荐阅读
author-avatar
-刘耀宗_690
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有