如何使用Python标准库替代pandas查找CSV指定列缺失值对应的行索引
实现代码
使用Python自带标准库csv即可实现需求,和原pandas逻辑对齐的代码如下:
import csv target_column = "Height" missing_value_indexes = [] with open("user_data.csv", mode="r", encoding="utf-8") as f: # 自动识别首行为表头,后续行以字典形式返回 csv_reader = csv.DictReader(f) # 行索引从0开始计数,和pandas默认索引规则一致 for index, row in enumerate(csv_reader): height_val = row[target_column] # 兼容空字符串、全空白字符、None三类空值场景 if height_val is None or height_val.strip() == "": missing_value_indexes.append(index) print(missing_value_indexes)
原代码报错原因
the JSON object must be str, bytes or byte array, not list报错:你大概率是错误尝试将CSV读取得到的列表直接传入JSON解析方法,JSON解析仅接受字符串/字节类型输入,因此触发报错。list indices must be integers or slices, not str报错:两个尝试版本都误将存储逐行数据的列表当作按列存储的字典使用,尝试用列名字符串作为下标访问列表,而列表仅支持整数下标,因此触发该报错。- 版本1额外存在逻辑倒置问题:现有判断条件会筛选出
Height不为空的行索引,和你要提取空值对应索引的需求完全相反。
如果你的CSV文件里空值有特殊标记(比如NA、NULL等),在判断条件中补充对应匹配规则即可。
内容的提问来源于stack exchange,提问作者Derya
相关产品推荐
相关产品推荐

