我正在尝试为学校项目整理一个熊猫数据框,但是这样做我反复打了一个api。我无法弄清楚为什么我一遍又一遍地返回相同的数据帧,没有列标题,任何帮助都非常赞赏。
代码如下:
a.py
import json
import requests
import pandas as pd
import numpy as np
from bs4 import BeautifulSoup
tmp = []
tmp_1 = []
def fetchdata(ticker):
url = 'https://api.iextrading.com/1.0/stock/'
time = '/chart/5y'
get = url + ticker + time
data = requests.get(get).json()
length = len(data)
# i = i + 1
for j in range(0, length):
date = data[j]['date']
closing = data[j]['close']
x = tmp.append(date)
y = tmp_1.append(closing)
df = pd.DataFrame(x)
df[ticker] = tmp_1
df_1 = df.loc[1:1000]
return df_1
b.py
import pandas as pd
import numpy as np
from slizzy import fetchdata
df_appl_1 = fetchdata('aapl')
df_appl_2 = fetchdata('aapl')
df_appl_3 = fetchdata('aapl')
df_gold = fetchdata('gld')
print df_appl_1
print df_gold
答案 0 :(得分:1)
将列表声明移动到您的函数中:
def fetchdata(ticker):
tmp = []
tmp_1 = []
就目前而言,在第一次调用函数之后,这些列表不会被清除(因为它们是全局变量),所以每次都会连续查询相同的1000个元素。