【发布时间】:2021-05-21 23:24:05
【问题描述】:
以下是我如何从从 API 获得的蜡烛列表中准备 DataFrame
蜡烛列表包含嵌套的开盘价、最高价、最低价、收盘价、成交量值
candles = [ [time.time() , random(1000 ,9999) , random(1000 ,9999) ,random(1000 ,9999),random(1000 ,9999),random(1000 ,9999) ] for i in range(10) ]
def handler(candles):
date_time, open_lst , high_lst , low_lst , close_lst , volume_lst = [],[],[],[],[],[]
for item in candles:
dt = datetime.fromtimestamp(float(item[0])/1000)
date_time.append(dt)
open_lst.append(float(item[1]))
high_lst.append(float(item[2]))
low_lst.append(float(item[3]))
close_lst.append(float(item[4]))
volume_lst.append(float(item[5]))
## creating the data frame
coin_data_frame = {
'dt': date_time,
'open': open_lst,
'high': high_lst,
'low': close_lst,
'close': close_lst,
'volume': volume_lst }
df = pd.DataFrame(coin_data_frame , columns= ['dt','open','high','low', 'close', 'volume'] )
rolling_mean = df['close'].rolling(window=5, min_periods=5 ).mean()
rolling_mean2 = df['close'].rolling(window=10, min_periods=10 ).mean()
df['5_sma'] = rolling_mean
df['10_sma'] = rolling_mean2
df.dropna(subset = ["5_sma"], inplace=True)
df.dropna(subset = ["10_sma"], inplace=True)
puts(colored.yellow(str(df)))
return df.reset_index(drop=True, inplace=True)
puts(colored.yellow(str(df)) 行显示数据帧,但索引不是从 0 开始,而是出于某种原因从 9 开始,我尝试使用df.reset_index(drop=True, inplace=True) ,但它似乎无法解决我的问题我仍然可以看到数据框以 9 开头
【问题讨论】:
-
我在尝试运行您的代码时收到“NameError: name 'candles' is not defined”。简化它并使其可运行。