Python 局部变量';df和x27;分配前参考

Python 局部变量';df和x27;分配前参考,python,Python,我不知道该怎么做这个练习 “您可以使用此模板获取DJIA会员的调整后收盘价 首先,你应该在线下载一份DJIA会员名单。 然后读入成员并在主函数中编写for循环,以获取所需的数据 提示,使用get_EOD_data函数中的'tickers'参数“ 回溯(最近一次呼叫最后一次): 文件“/Users/katewang/Desktop/Test/scrape_data.py”,第32行,在 main() 文件“/Users/katewang/Desktop/Test/scrape_data.py”,第

我不知道该怎么做这个练习

“您可以使用此模板获取DJIA会员的调整后收盘价

首先,你应该在线下载一份DJIA会员名单。 然后读入成员并在主函数中编写for循环,以获取所需的数据

提示,使用get_EOD_data函数中的'tickers'参数“

回溯(最近一次呼叫最后一次):
文件“/Users/katewang/Desktop/Test/scrape_data.py”,第32行,在
main()
文件“/Users/katewang/Desktop/Test/scrape_data.py”,第28行,主文件
df_数据=获取EOD_数据()
文件“/Users/katewang/Desktop/Test/scrape_data.py”,第22行,在get_EOD_数据中
df.fillna(方法='ffill',inplace=True)
UnboundLocalError:赋值前引用了局部变量“df”
在本节中

. . . . 

if r.status_code == requests.codes.ok:

    # Use the parameters index_col and usecols to control which columns you want to scrape
    df = pd.read_csv(StringIO(r.text), skipfooter = 1, parse_dates = [0], engine = 'python', na_values=['nan'])

df.fillna(method = 'ffill', inplace = True)
. . . 

您会注意到变量
df
的赋值在一个条件语句中,这个条件语句很可能计算为false,因为
r.status\u code
requests.codes.ok
是不等价的

df
只在r.status\u code==requests.codes.ok时获取一个值。当该条件为false时会发生什么?也许您应该将这两行
df.fillna(…)
放入
if
条件中。
Traceback (most recent call last):
  File "/Users/katewang/Desktop/Test/scrape_data.py", line 32, in <module>
    main()
  File "/Users/katewang/Desktop/Test/scrape_data.py", line 28, in main
    df_data = get_EOD_data()
  File "/Users/katewang/Desktop/Test/scrape_data.py", line 22, in get_EOD_data
    df.fillna(method = 'ffill', inplace = True)
UnboundLocalError: local variable 'df' referenced before assignment
. . . . 

if r.status_code == requests.codes.ok:

    # Use the parameters index_col and usecols to control which columns you want to scrape
    df = pd.read_csv(StringIO(r.text), skipfooter = 1, parse_dates = [0], engine = 'python', na_values=['nan'])

df.fillna(method = 'ffill', inplace = True)
. . .