首页 > 解决方案 > 如何保持多于三列的行大于(在 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

标签: pythonpandas

解决方案


您可以为大于 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

推荐阅读