统计DataFrame所有列中'?'出现次数时for循环报错如何解决
错误原因
- 当你使用
dataset.列名的点语法访问DataFrame列时,pandas会将列名当做固定属性名解析,不会识别为for循环中定义的column变量。你写dataset.column时,程序会直接去找名为column的列,你的数据集里没有这一列,所以抛出属性不存在的错误。
修正代码
访问动态变量对应的列,需要改用中括号语法,代码修改如下:
for column in dataset: # 输出列名和对应?的出现次数 print(f"{column}: {dataset[column][dataset[column] == '?'].count()}")
你也可以使用更高效的pandas向量化操作,无需写循环就能直接得到所有列的统计结果:
(dataset == '?').sum()
内容的提问来源于stack exchange,提问作者PassaroBagante
相关产品推荐
相关产品推荐

