如何用Pandas计算DataFrame中A=F且E=T的单元格数量?
解决方法:用Pandas统计符合双重条件的记录数
嘿,这个需求用Pandas的布尔索引就能轻松实现,我给你拆解一下步骤:
首先,先把你给出的DataFrame构造出来,方便测试验证:
import pandas as pd # 构造你提供的数据集 data = { 'A': ['T', 'T', 'F', 'F'], 'B': ['F', 'F', 'F', 'T'], 'C': ['T', 'F', 'F', 'T'], 'D': ['T', 'F', 'T', 'F'], 'E': ['T', 'T', 'T', 'F'] } df = pd.DataFrame(data)
核心代码(统计满足A=F且E=T的记录数,即你要的结果1)
# 生成布尔掩码,筛选同时满足两个条件的行 mask = (df['A'] == 'F') & (df['E'] == 'T') # 统计True的数量(True会被视为1,False视为0) count = mask.sum() print(count) # 输出:1
代码解释
df['A'] == 'F':生成一个布尔Series,标记每行的A列是否等于'F'df['E'] == 'T':同理,标记每行的E列是否等于'T'&:逻辑与操作,必须加括号(因为Pandas的比较运算符优先级高于逻辑运算符),得到最终的筛选掩码,只有同时满足两个条件的行才会被标记为Truesum():对布尔Series求和,自动把True转换为1,False转换为0,求和结果就是符合条件的记录行数
补充:如果需要统计这些符合条件的行中所有单元格的数量
如果你的需求是统计满足条件的行里的总单元格数(比如示例中符合条件的是第2行,共5个单元格),可以用size属性:
# 先筛选出符合条件的子DataFrame,再获取总单元格数 cell_count = df[mask].size print(cell_count) # 输出:5
内容的提问来源于stack exchange,提问作者Pikachu1998
相关产品推荐
相关产品推荐

