Python使用Pandas读取CSV后无法访问price列问题求助
解决Pandas KeyError: 'price'的问题
嘿,这个问题很好解决!我看完你的输出和代码立刻就找到问题根源了:
你在代码里尝试访问"price"列,但从打印出的DataFrame内容能看到,价格列的真实列名是"Regular price"(包含空格)。Pandas对列名的匹配是完全精确的,用错误的列名自然会触发KeyError。
解决方法一:直接使用正确列名
把代码里的"price"替换成实际列名"Regular price"就行,修改后的代码如下:
import pandas as pd data = pd.read_csv("data.csv") print(data) i = 1 while i < 6: print(data.at[i, "Name"]) # 替换为正确的列名 print(data.at[i, "Regular price"]) i += 1
解决方法二:给列重命名(更简洁)
如果你觉得"Regular price"太长不好用,可以提前给它重命名为"price",后续代码就能用短名称访问了:
import pandas as pd data = pd.read_csv("data.csv") # 重命名列,将"Regular price"改为"price" data.rename(columns={"Regular price": "price"}, inplace=True) print(data) i = 1 while i < 6: print(data.at[i, "Name"]) print(data.at[i, "price"]) i += 1
实用小技巧
以后遇到类似列名问题,可以先打印所有列的准确名称来确认:
print(data.columns)
如果CSV导出时列名带了前后空格,还可以用这段代码统一清理:
data.columns = data.columns.str.strip()
内容的提问来源于stack exchange,提问作者David Wyness
相关产品推荐
相关产品推荐

