Python中调用列名为时间戳的列时出现KeyError的解决方法
解决调用时间戳列时的KeyError问题
先确认列名的真实状态
先执行以下代码查看DataFrame的所有列名,明确10:05:00列的实际名称:
print(df.columns.tolist())
这能帮你排查列名是否带前后空格、特殊字符,或是被解析成了非字符串类型。
常见问题及解决方法
列名包含前后空格
从你提供的数据集来看,10:05:00列名前可能存在空格,导致直接用'10:05:00'索引失败。可以先清理列名的空格:# 去除所有列名的前后空格 df.columns = df.columns.str.strip() # 现在可以正常调用列并计算总和 df['10:05:00'] = df['10:05:00'].sum()或者直接使用带空格的列名索引(如果确认列名前有空格):
df[' 10:05:00'] = df[' 10:05:00'].sum()列名被解析为时间类型而非字符串
如果pandas将列名识别为datetime.time对象而非字符串,用字符串索引会触发KeyError。可以将列名转为字符串类型:df.columns = df.columns.astype(str) df['10:05:00'] = df['10:05:00'].sum()
额外验证步骤
如果以上方法无效,检查DataFrame的结构确认目标列是否存在:
# 查看DataFrame的基本信息 df.info() # 查看前几行数据,确认列的位置和名称 print(df.head())
内容的提问来源于stack exchange,提问作者Laura Nayiga
相关产品推荐
相关产品推荐

