为了账号安全,请及时绑定邮箱和手机立即绑定

无法将 numpy 数组分配给熊猫数据框

无法将 numpy 数组分配给熊猫数据框

富国沪深 2022-12-20 15:29:44
我无法将一个 numpy 数组从一个 numpy 数组的元组分配给一个 pandas 数据框。有人能帮我吗?我正在使用第三方库来获取数据并生成输出 numpy 数组。代码:import timeimport numpy as npimport pandas as pdimport ccxt # crypto exchange libraryimport tulipy as ti # financial indicatorsdef currentTimeMillis(self):    return int(round(time.time() * 1000))currentMillisMinus250min  = currentTimeMillis() - 30000000bitmex = ccxt.bitmex()ohlcvDf = pd.DataFrame(            bitmex.fetch_ohlcv(symbol="BTC/USD", limit=500, timeframe="1m", since=currentMillisMinus250min),            columns = ["timestamp", "open", "high", "low", "close", "volume"])macdNp = ti.macd(ohlcvDf["close"].to_numpy(), 12, 26, 9)ohlcvDf["macd"] = macdNp[0]ohlcvDf["signal"] = macdNp[1]错误:ValueError: Length of values does not match length of index字符元组:( array([ 6.68695914e+00,  6.12108219e+00,  5.64479926e+00,  4.94431782e+00,         4.33794071e+00,  3.81237487e+00,  3.46875952e+00,  3.15956840e+00]),  array([ 6.68695914,   6.57378375,   6.38798685,   6.09925304,         5.74699058,   5.36006744,   4.98180585,   4.61735836]), array([ 0.00000000e+00, -4.52701560e-01, -7.43187590e-01, -1.15493523e+00,        -1.40904987e+00, -1.54769256e+00, -1.51304634e+00, -1.45778996e+00]))
查看完整描述

2 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

import time


import numpy as np

import pandas as pd


import ccxt # crypto exchange library

import tulipy as ti # financial indicators


def currentTimeMillis():

    return int(round(time.time() * 1000))


currentMillisMinus250min  = currentTimeMillis() - 30000000


bitmex = ccxt.bitmex()


ohlcvDf = pd.DataFrame(

        bitmex.fetch_ohlcv(symbol="BTC/USD", limit=500, timeframe="1m", since=currentMillisMinus250min),

        columns = ["timestamp", "open", "high", "low", "close", "volume"])


macdNp = ti.macd(ohlcvDf["close"].to_numpy(), 12, 26, 9)


nan_arr = np.nan * np.ones(shape=(25,))

ohlcvDf["macd"] = np.append(nan_arr, macdNp[0])

ohlcvDf["signal"] = np.append(nan_arr, macdNp[1])

在您的代码中,您使用了self,self.macdPeriodFast, self.macdPeriodSlow, self.macdSignal,但没有在任何地方引用它,因为我刚刚阅读了这些库并尝试生成元组(可能与您的不同)。但我能够生成元组并打印这些数组。


您能否提供在此特定代码中使用的任何其他内容!

我在这里读过图书馆



查看完整回答
反对 回复 2022-12-20
?
慕的地8271018

TA贡献1796条经验 获得超4个赞

更好的方法是使用 np.array 而不仅仅是数组。


import numpy as np


arrays = (

 np.array([ 6.68695914e+00,  6.12108219e+00,  5.64479926e+00,  4.94431782e+00,

         4.33794071e+00,  3.81237487e+00,  3.46875952e+00,  3.15956840e+00]), 

 np.array([ 6.68695914,   6.57378375,   6.38798685,   6.09925304,

         5.74699058,   5.36006744,   4.98180585,   4.61735836]),

 np.array([ 0.00000000e+00, -4.52701560e-01, -7.43187590e-01, -1.15493523e+00,

        -1.40904987e+00, -1.54769256e+00, -1.51304634e+00, -1.45778996e+00])

)


print(arrays[0])

输出:


[6.68695914 6.12108219 5.64479926 4.94431782 4.33794071 3.81237487

 3.46875952 3.1595684 ]


查看完整回答
反对 回复 2022-12-20
  • 2 回答
  • 0 关注
  • 113 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号