读取RFMiD训练标签csv后访问ID列报KeyError: 'ID'错误如何解决?
报错原因
- 核心触发原因是你读取到的DataFrame中不存在名为
ID的列,pandas在索引不存在的列名时就会抛出KeyError。最常见的诱因是你设置了错误的分隔符:RFMiD官方提供的标签CSV文件默认是逗号分隔,你指定了制表符\t作为分隔符后,pandas会把每行的所有字段全部合并到同一个列中,自然无法拆分出单独的ID列。 - 小概率场景为CSV的列名存在前后空格(比如实际列名为
ID而非ID),或是数据集标签的ID列使用了其他命名规则,比如Image_ID、img_id等。
解决方法
- 首先修正CSV读取参数,删除错误的分隔符设置,使用pandas默认的逗号分隔规则读取文件:
df4 = pd.read_csv('../input/riadd-dataset/RFMiD_Training_Labels.csv')
- 读取完成后先执行
print(df4.columns)输出所有列名,确认列名情况:
- 如果列名存在多余的前后空格,先批量去除所有列名的空格:
df4.columns = df4.columns.str.strip()
- 如果ID列实际使用其他命名,将后续代码中的列名替换为实际的列名即可。
- 确认列名正确后再执行路径拼接代码:
df4['ID']="Training/"+df4['ID'].astype(str)+'.png'
内容的提问来源于stack exchange,提问作者Bali Akanksha
相关产品推荐
相关产品推荐

