pandas统计DataFrame列特定值数量返回0如何解决
问题原因
你的代码运行结果为0的核心原因是数据类型不匹配:
- pandas读取Excel中的数值类数据时,默认会将count列解析为整数/浮点数类型,列中存储的2是数值型的
2 - 你调用
count('2')时传入的是字符串类型的'2',Python中数值2和字符串'2'属于完全不同的对象,无法匹配,因此统计结果为0。
解决方法
方法1(更推荐,pandas原生写法,性能更高)
直接对列做布尔判断后求和即可:
df = pd.read_excel('report.xlsx') df.columns = ['file', 'count'] count = (df['count'] == 2).sum() print(count)
方法2(兼容原有写法的修改方案)
把count('2')里的引号去掉,传数值型的2即可:
df = pd.read_excel('report.xlsx') df.columns = ['file', 'count'] count = df['count'].tolist().count(2) print(count)
如果需要验证数据类型,可以加一行代码查看列元素的类型:
print(type(df['count'].iloc[0]))
内容的提问来源于stack exchange,提问作者Chang
相关产品推荐
相关产品推荐

