如何填充缺失的ACCESSORIES列值以解决Pandas索引越界报错
代码修复方案
你遇到的报错是筛选ACCESSORIES特征后得到的DataFrame为空,直接取下标0的元素触发的越界错误,只要在取值前增加空判断,无匹配特征时填入默认值即可。
修复方式1(直观易读写法)
直接替换原代码中对应的以下两行:
df1 = df[df['trait_type']=='ACCESSORIES'] accessories.append(df1['value'].values[0])
替换为如下逻辑:
df1 = df[df['trait_type']=='ACCESSORIES'] if not df1.empty: # 存在ACCESSORIES特征,取对应值 accessories.append(df1['value'].values[0]) else: # 无对应特征时填充默认值,可按需替换为 None、0、'' 等你需要的数值 accessories.append(pd.NA)
修复方式2(精简写法)
也可以用迭代器+默认值的写法实现一行完成判断+取值:
df1 = df[df['trait_type']=='ACCESSORIES'] accessories.append(next(iter(df1['value'].values), pd.NA))
如果你后续要提取backgrounds、shoes等其他特征,也可以套用完全相同的逻辑,修改对应的trait_type筛选值即可。
内容的提问来源于stack exchange,提问作者intermarketics
相关产品推荐
相关产品推荐

