date2num还在更新的Mplfinance解释器中吗?

2024-06-07 14:00:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在将JSON数据转换为pandas表,但我仍然需要将datetime字符串转换为浮点,以便mplfinance解释器能够读取和绘制数据。但是当试图执行代码时,解释器中的一个包出现了问题

有人知道为什么更新版的mpl_finance没有这个date2num包吗(据我所知)?这段代码过去用于mpl_finance的早期版本,但由于某些原因,我无法使用“date2num”包

有什么替代方法可以实现这一点

import mplfinance as mpf

import datetime

from mplfinance import date2num

#Convert date string to date float

float_date = date2num(datetime.datetime.strptime(df['date'], '%Y%m%d%H%M%S%f'))

print(aapl_df)

mpf.plot(aapl_df)

以下是我到目前为止的情况:

import requests #for http request to Marketstack.com
import pandas as pd

params = {
    'access_key': '*********************'
}

#Sorts the data into a table
api_result = requests.get('HTTP API LINK/REQUEST', params)
api_response = api_result.json()

df = pd.DataFrame(api_response['data'])
print(df)

aapl_df = df[['date', 'high', 'open', 'low', 'close', 'adj_close']]
print(aapl_df)

import mplfinance as mpf
import datetime
#Convert date string to date float
float_date = date2num(datetime.datetime.strptime(df['date'], '%Y-%m-%dT%H:%M:%S+%f'))

print(aapl_df)
mpf.plot(aapl_df)

所以我可以打印数据,但是错误的日期格式是造成错误的原因


Tags: to数据importapipandasdfdatetimedate
2条回答
  • date2num()不是也从来不是mplfinance(也不是mpl_finance)的一部分
  • date2num是matplotlib的一部分
  • 旧的mpl\U财务要求您将日期转换为日期的matplotlib数字表示形式。因此,在过去,你需要在约会时打电话给date2num
  • 新的mplfinance不需要此转换。相反,它希望数据以带有Pandas datetime索引的Pandas数据帧的形式出现
  • 如果您的数据是JSON,我建议您调用pandas.read_json()来创建数据帧

我强烈建议您花10到15分钟仔细阅读新的mplfinance基本用法文档:

文档的第一部分调用了pandas.read_csv(),您可以将其替换为pandas.read_json(),很可能其他所有操作都是一样的

如果您在这里发布数据以及所有代码(至少从读取数据到调用mpf.plot()),那么我可能会帮助您使其正常工作


  • 尝试以下更改,从分配aapl_df的行开始:
###aapl_df = df[['date', 'high', 'open', 'low', 'close', 'adj_close']]

aapl_df = df[['high', 'open', 'low', 'close']]

#Convert date string to datetime index:
aapl_df.index = pd.DatetimeIndex(df['date'])

print(aapl_df)

import mplfinance as mpf

###import datetime
####Convert date string to date float
###float_date = date2num(datetime.datetime.strptime(df['date'], '%Y-%m-%dT%H:%M:%S+%f'))

print(aapl_df)
mpf.plot(aapl_df)

我在一定程度上猜测这会奏效;如果我能看到api_response = api_result.json()的输出就更好了。尽管如此,请尝试一下,让我知道它是如何工作的

如果aapl_df.index = pd.DatetimeIndex(df['date'])引发异常,请尝试:

aapl_df.index = pd.DatetimeIndex(df['date'].values)

以下是我到目前为止的情况:

import requests #for http request to Marketstack.com
import pandas as pd

params = {
'access_key': '*********************'
}

#Sorts the data into a table
api_result = requests.get('HTTP API LINK/REQUEST', params)
api_response = api_result.json()

df = pd.DataFrame(api_response['data'])
print(df)

aapl_df = df[['date', 'high', 'open', 'low', 'close', 'adj_close']]
print(aapl_df)

import mplfinance as mpf
import datetime
#Convert date string to date float
float_date = date2num(datetime.datetime.strptime(df['date'], '%Y-%m-%dT%H:%M:%S+%f'))

print(aapl_df)
mpf.plot(aapl_df)

所以我可以打印数据,但是错误的日期格式是造成错误的原因

相关问题 更多 >

    热门问题