处理Pandas DataFrame时出现KeyError:无法识别列名的求助
解决Pandas处理百分比列时的KeyError问题
问题根源:你的代码每次执行
df = df['列名'].str.rstrip("%").astype(float)时,会把整个DataFrame替换成对应列的Series对象。第一次执行后,df已经不是原来的多列DataFrame了,变成了仅包含'IV'数据的Series,后续再访问'IV_Rank'、'IV PCT'这些列自然会触发KeyError。正确写法:直接修改原DataFrame的对应列,不要覆盖整个df:
# 处理IV列,保留原DataFrame结构 df['IV'] = df['IV'].str.rstrip("%").astype(float) # 处理IV_Rank列 df['IV_Rank'] = df['IV_Rank'].str.rstrip("%").astype(float)/100 # 处理IV PCT列 df['IV PCT'] = df['IV PCT'].str.rstrip("%").astype(float)/100
- 额外检查点:
- 确认重命名列之后,这些列名确实存在于DataFrame中,可以用
print(df.columns)输出所有列名,核对是否有拼写错误(包括空格、大小写) - 如果列名有隐藏的空格或特殊字符,可以用
df.columns = df.columns.str.strip()先清理列名
- 确认重命名列之后,这些列名确实存在于DataFrame中,可以用
内容的提问来源于stack exchange,提问作者Rhoomesie
相关产品推荐
相关产品推荐

