python - 如何保持多于三列的行大于(在 Pandas 中)
问题描述
我想知道如何在 Pandas 数据框中保留超过 3 个列的值大于 0.8 的行这是一个示例:
companyInfo = pd.DataFrame()
companyInfo['col1'] = [0,0,0,0,0]
companyInfo['col2'] = [0,0.9,0,0,0]
companyInfo['col3'] = [0,0,0.85,0,0]
companyInfo['col4'] = [0,0,0,0,0]
companyInfo['col5'] = [0,0.2,0,0,0.09]
companyInfo['col6'] = [0,0,0.3,0,0.87]
companyInfo['col7'] = [0,0,0.2,0.4,0.82]
在这种情况下,只保留最后一行,因为它至少有 3 列大于 0.8
解决方案
您可以为大于 0.8 的值创建掩码,然后调用sum()
并axis=1
检查总和是否大于 3
companyInfo[(companyInfo>0.8).sum(axis=1)>3]
输出:
Columns: [col1, col2, col3, col4, col5, col6, col7]
Index: []
为空,因为您没有任何符合此条件的值
但对于其他一些标准:
companyInfo[(companyInfo>=0.2).sum(axis=1)>=3]
#output
col1 col2 col3 col4 col5 col6 col7
2 0 0.0 0.85 0 0.0 0.3 0.2
推荐阅读
- windows - Windows 上的 Git 结帐后挂钩
- android - 联系人:我如何知道我是否可以将联系人转移到的帐户?
- swift - 将框架添加到 Xcode 项目时,Gitlab 阶段包含对丢失文件的引用
- java - Opendaylight - 找不到符号 getNode()
- angular - 我的图像和字形没有显示,但我的路径是正确的,我该如何解决这个问题?
- android - 从 mvvm 获取的数据在第一次访问时不会在回收站视图中更新
- git - 当我们 git clone 存储库时如何克隆开发分支
- javascript - 我有一个编程任务,我无法继续
- python - 将字符串转换为日期列
- javascript - 使用 socket.io 存储全局数据