如何用更简洁的方法统计Pandas DataFrame列中符合条件的值的数量
统计Pandas DataFrame列中符合条件的元素数量
给定如下DataFrame:
import pandas as pd df = pd.DataFrame({'A': [1, 10, 100, 1000, 10000], 'B': [1, 2, 3, 4, 5]})
输出结果:
A B 0 1 1 1 10 2 2 100 3 3 1000 4 4 10000 5
要统计A列中值大于100的元素数量,你提到的df['A'][df['A']>100].count()虽然可行,但重复调用df['A']不够简洁,以下是几种更简便的方法:
方法一:布尔序列直接求和(最简洁)
(df['A'] > 100).sum()原理:比较操作
df['A'] > 100会返回布尔类型的Series,符合条件的元素对应True(数值1),不符合的对应False(数值0),对该Series求和即可直接得到符合条件的元素总数,结果为2。方法二:使用
query方法筛选后取行数df.query('A > 100').shape[0]或者:
len(df.query('A > 100'))原理:
query通过字符串表达式筛选出符合条件的行,shape[0]或len()可直接获取筛选结果的行数,也就是目标元素数量。方法三:使用
loc定位后计数df.loc[df['A'] > 100, 'A'].count()原理:
loc先通过布尔条件筛选行,再指定统计的A列,最后调用count()得到数量。这种方法避免了链式索引的潜在警告,可读性较强。
内容的提问来源于stack exchange,提问作者Dracrays
相关产品推荐
相关产品推荐

