在Python中将函数的结果存储到可检索的数据帧中

在Python中将函数的结果存储到可检索的数据帧中,python,pandas,Python,Pandas,我是python新手,刚刚阅读了几本关于数据分析/机器学习的书籍和教程 我想建立一个分类,并试图刮实时股票数据 以下函数用于提取实时数据 from googlefinance import getQuotes import json import pandas as pd import datetime import requests def get_intraday_data(symbol, interval_seconds=301, num_days=10): # Specify

我是python新手,刚刚阅读了几本关于数据分析/机器学习的书籍和教程

我想建立一个分类,并试图刮实时股票数据

以下函数用于提取实时数据

from googlefinance import getQuotes
import json
import pandas as pd
import datetime
import requests

def get_intraday_data(symbol, interval_seconds=301, num_days=10):
    # Specify URL string based on function inputs.
    url_string = 'http://www.google.com/finance/getprices?q=   {0}'.format(symbol.upper())
    url_string += "&i={0}&p={1}d&f=d,o,h,l,c,v".format(interval_seconds,num_days)

    # Request the text, and split by each line
    r = requests.get(url_string).text.split()

    # Split each line by a comma, starting at the 8th line
    r = [line.split(',') for line in r[7:]]

    # Save data in Pandas DataFrame
    df = pd.DataFrame(r, columns=    ['Datetime','Close','High','Low','Open','Volume'])

    # Convert UNIX to Datetime format
    df['Datetime'] = df['Datetime'].apply(lambda x: datetime.datetime.fromtimestamp(int(x[1:])))

    return df
当我尝试调用df时,我得到以下错误:

---------------------------------------------------------------------------
    NameError                                 Traceback (most recent call last)
<ipython-input-40-db884686c2f6> in <module>()
     18     return df
     19 
---> 20 symbol = pd.DataFrame(df)

NameError: name 'df' is not defined
---------------------------------------------------------------------------
NameError回溯(最近一次呼叫上次)
在()
18返回df
19
--->20符号=pd.数据帧(df)
NameError:未定义名称“df”

问题是,我希望能够将其存储到一个单独的日期框中,并在以后调用它。该函数似乎在运行,而不是存储在任何地方。对此我将不胜感激。

我对计算机科学术语不太熟悉,无法向您详细解释,但基本上,当您调用具有返回值的函数时,该值必须保存为变量

df只存在于函数中。(我认为这就是所谓的范围)。当您离开该函数时,df将消失

你在干什么

get_intraday_data(symbol, 301,10)
因此,在该函数运行之后,返回的变量就消失了

相反,请执行以下操作:

df = get_intraday_data(symbol, 301,10)
然后你可以用它来做一些事情

或者,您可以对其进行pickle处理,而不是返回df。在您的“获取日内”符号中

然后,后续代码必须读取pickle数据帧

fname = get_intraday_data(symbol, 301,10)
df = pd.read_pickle(fname)

我试过这个。没有解决我的问题,因为在添加了一个将结果存储在HDFS@user2539738中的过程后,我仍然收到一个错误,说df不是一个定义的函数,这很有魅力!!!谢谢
fname = get_intraday_data(symbol, 301,10)
df = pd.read_pickle(fname)