当前位置: 首页 > 知识库问答 >
问题:

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

东方高洁
2023-03-14
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
---------------------------------------------------------------------------
    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

共有1个答案

阙弘博
2023-03-14

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

df只存在于您的函数中。(我认为这叫做范围)。当您离开函数时,df将消失

你在做什么

get_intraday_data(symbol, 301,10)
df = get_intraday_data(symbol, 301,10)

然后你就可以用它做事情了

或者,不是返回df,而是将其泡菜化。在您的“get_intraday_symbol”中

fname = 'file1.P'
df.to_pickle(fname)
return fname

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

fname = get_intraday_data(symbol, 301,10)
df = pd.read_pickle(fname)
 类似资料:
  • 问题内容: 我知道这应该是简单的,我可能正直盯着问题,但我再次陷入困境,需要代码专家的帮助。 我试图从jdbc的一列中取出一行,并将它们放入数组中。 我这样做如下: creatConnection是已经定义的方法,可以执行其明显的工作。我在创建另一个结果集的同时创建了我的结果集,我将该列的字符串存储到一个数组中。然后打印出来以备不时之需。还要确保它在那里。 问题在于其将整个列存储到contactL

  • 本文向大家介绍如何使用Python将数据存储和检索到Sqlite3数据库中?,包括了如何使用Python将数据存储和检索到Sqlite3数据库中?的使用技巧和注意事项,需要的朋友参考一下 您可以使用sqlite3模块轻松地将日期存储和检索到Sqlite3数据库中。在数据库中插入日期时,直接传递日期,Python会自动处理它。 示例 输出结果 这将给出输出- 现在,当您从数据库中获取值时,您将获得已

  • 所以,我有一个方法(应该)返回一个字符串,其中包含来自sqlite数据库的数据: 我将使用该字符串定位一个文本文件,通过该文本文件,其内容将显示在另一个类中的JTextPane上 但是,我遇到了以下错误: 异常在线程"AWT-EventQueue-0"utton.fireIndexOutOfBoundsException: Index: 0, size: 0 atutton.java:2022Ar

  • 我是C语言的初学者。如果我的问题是蹩脚的,请不要介意。在我写的这个程序中,当我第一次使用“for”循环时,我希望一个数组中只存储3个值,但它存储4个值,在接下来的“for”循环中,如预期的那样显示3个值。我的问题是为什么在第一个for循环中需要4个值而不是3个?

  • 我正在做一个项目,我想要一个功能,在WhatsApp上给我们留言,为此,我使用了使用intent的WhatsApp API。在“WhatsApp上向我们发送消息”功能中,我使用了2-3个不同的数字,并将其存储在列表中,并使用random()方法从列表中检索该数字,正如我所希望的那样,每当用户使用该功能时,他/她每次都必须连接不同的数字。但现在我想更改列表中存储的数字。 那么,我如何在每次不改变实际

  • 问题内容: 我正在尝试将sql数据库中的数据存储到数组中。目前我有这个: 问题是我有8行数据。我需要将数据库中的每个8个名称存储到一个数组中。当我尝试这个: 它不起作用。 问题答案: 您想要的是: 这会将所有8个名称存储在类似于以下内容的数组中: