如何统计pandas DataFrame每行中字符串a和b的出现次数
计算每行a、b出现次数的实现方案
以下两种方案都可以实现需求,可根据你的实际场景选择:
- 方案1:通用场景(支持任意取值、任意列数)
对每行调用value_counts做值统计,自动适配所有存在的取值,缺失的统计值会自动补0:df[['count_a', 'count_b']] = df.apply(lambda x: x.value_counts(), axis=1).fillna(0).astype(int) - 方案2:高性能场景(确定只有a、b两个取值时使用)
直接对全表做值匹配后按行求和,不需要逐行遍历,数据量越大性能优势越明显:df['count_a'] = df.eq('a').sum(axis=1) df['count_b'] = df.eq('b').sum(axis=1)
样例数据运行后输出效果:
Col1 Col2 Col3 count_a count_b a b a 2 1 b b a 1 2 a a a 3 0 b a a 2 1 b b b 0 3 a a b 2 1
内容的提问来源于stack exchange,提问作者Vadim Katsemba
相关产品推荐
相关产品推荐

