date2num 是否仍在更新的 Mplfinance 解释器中?
Is date2num still in the updated Mplfinance interpreter?
我一直在将 JSON 数据转换为 pandas table,但我仍然需要将日期时间字符串转换为浮点数,以便 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)
所以我能够打印数据,但错误的日期格式是造成错误的原因。
date2num()
不是也从来不是 mplfinance 的一部分(mpl_finance)。
date2num
是 matplotlib 的一部分。
- old mpl_finance 要求您将日期转换为日期的 matplotlib 数字表示。因此,在过去,您需要在日期上调用 date2num。
- 新 mplfinance 不需要此转换。相反,它需要 Pandas DataFrame 形式的数据和 Pandas DatetimeIndex.
- 如果您的数据是 JSON,我建议您调用
pandas.read_json()
来创建数据框。
我强烈建议您花 10 或 15 分钟仔细阅读新的 mplfinance 基本使用文档:
那里的文档的第一部分调用了 pandas.read_csv()
,您可以将其替换为 pandas.read_json()
,很可能其他所有内容都可以正常工作。
如果您 post 此处的数据以及所有代码(至少从读取数据到调用 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)
所以我能够打印数据,但错误的日期格式是造成错误的原因。
我一直在将 JSON 数据转换为 pandas table,但我仍然需要将日期时间字符串转换为浮点数,以便 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)
所以我能够打印数据,但错误的日期格式是造成错误的原因。
date2num()
不是也从来不是 mplfinance 的一部分(mpl_finance)。date2num
是 matplotlib 的一部分。- old mpl_finance 要求您将日期转换为日期的 matplotlib 数字表示。因此,在过去,您需要在日期上调用 date2num。
- 新 mplfinance 不需要此转换。相反,它需要 Pandas DataFrame 形式的数据和 Pandas DatetimeIndex.
- 如果您的数据是 JSON,我建议您调用
pandas.read_json()
来创建数据框。
我强烈建议您花 10 或 15 分钟仔细阅读新的 mplfinance 基本使用文档:
那里的文档的第一部分调用了 pandas.read_csv()
,您可以将其替换为 pandas.read_json()
,很可能其他所有内容都可以正常工作。
如果您 post 此处的数据以及所有代码(至少从读取数据到调用 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)
所以我能够打印数据,但错误的日期格式是造成错误的原因。