Is Pandas not importing? 'NameError: global na

2020-04-11 10:40发布

I'm getting a few errors here but I think it's due to pandas not importing as it's greyed out. If that is the problem, how would I fix this?

C:\Anaconda\python.exe C:/Users/nickd/Documents/SKLEARN-STOCKS/stock-mach.py Traceback (most recent call last): File "C:/Users/nickd/Documents/SKLEARN-STOCKS/stock-mach.py", line 38, in Key_Stats() File "C:/Users/nickd/Documents/SKLEARN-STOCKS/stock-mach.py", line 12, in Key_Stats df = pandas.DataFrame(columns = ['Date','Unix','Ticker','DE Ratio']) NameError: global name 'pandas' is not defined

Process finished with exit code 1

import pandas as pd
import os
import time
from datetime import datetime

#location of the data files
path = 'C:\Users\nickd\Documents\SKLEARN-STOCKS'
#what specific field do you want to grab and in all files in that directory
def Key_Stats(gather="Total Debt/Equity (mrq) "):
    statspath = path+'/_KeyStats'
    stock_list = [x[0] for x in os.walk(statspath)]
    df = pandas.DataFrame(columns = ['Date','Unix','Ticker','DE Ratio'])

    for each_dir in stock_list[1:5]:
        each_file = os.listdir(each_dir)
        ticker = each_dir.split("//")[1]
        if len(each_file) >0:
            for file in each_file:

                date_stamp = datetime.strptime(file, '%Y%m%d%H%M%S.html')
                #unix_time = time.mktime(date_stamp.timetuple())
                print(date_stamp,unix_time)
                full_file_path = each_file+'/'+file
                #print(full_file_path)
                source = open(full_file_path, 'r').read()
                #print(source)
                try:
                    value = float(source.split(gather+':</td><td class="yfnc_tabledata1">')[1].split('</td>')[0])
                    df = df.append({'Date':date_stamp,'Unix':unix_time,'Ticker':ticker,'DE Ratio':value,}, ignore_index = True)
                except Exception as e:
                    pass

                #print(ticker+":",value)

    save = gather.replace(' ','').replace(')','').replace('(','').replace('/',''+('.csv')
    print(save)
    df.to_csv(save)

                #time.sleep(15)

Key_Stats()

2条回答
beautiful°
2楼-- · 2020-04-11 11:17

You have imported it as

import pandas as pd

and calling

#pandas
df = pandas.DataFrame(columns = ['Date','Unix','Ticker','DE Ratio'])

You could either change

  • import pandas as pd to import pandas or
  • df = pandas.DataFrame(columns = ['Date','Unix','Ticker','DE Ratio']) to df = pd.DataFrame(columns = ['Date','Unix','Ticker','DE Ratio']).

edit:

error is due to missing )

save = gather.replace(' ','').replace(')','').replace('(','').replace('/',''+('.csv'))
查看更多
Bombasti
3楼-- · 2020-04-11 11:27

You imported pandas as pd. Either refer to it as such throughout, or remove the as pd from the import.

(Plus, never ever ever do except Exception... pass. You'll swallow all sorts of errors and never know what they were. If you aren't going to handle them, don't catch them at all.)

查看更多
登录 后发表回答