我正在尝试获取 4 个指数的平均值(列:每周美国 2 号柴油零售价格(每加仑美元)),使用 Python 和以下代码从网站上留下最新的前 2 个日期并获取 KeyError:
将 pandas 导入为 pddf = pd.read_excel('https://www.eia.gov/petroleum/gasdiesel/xls/psw18vwall.xls', sheet_name='Data 1', skiprows=2)
df['日期'] = pd.to_datetime(df['日期'])
df.set_index('日期', inplace=True)
#输入 input_date = pd.to_datetime(input('请输入日期 (YYYY-MM-DD): '))
最近的前 2 个日期
<= input_date][-3:-1]
计算选定日期的“每周美国 2 号柴油零售价格(美元/加仑)”列的平均值结果
< date)] average = four_weeks['Weekly U.S. No 2 Diesel Retail Prices (Dollars per Gallon)'].mean() averages.append(average)
但仍然出现同样的错误
- 有人能帮我避免这个 KeyError 吗。
您可以尝试使用
print(df.columns)
打印出列名以确认列名是否正确。列名称中可能存在您没有注意到的拼写错误。 如果列名正确,您可以尝试使用其索引而不是其名称来访问该列。例如,如果“每周美国 2 号柴油零售价格(每加仑美元)”是数据框中的第二列,您可以使用
df.iloc[:,1]
而不是
df['Weekly U.S. No 2 Diesel Retail Prices (Dollars per Gallon)']
访问它。此外,请确保输入的日期在数据框中的日期范围内,以避免在根据日期选择行时出错。