说明
我打算从比特币数据中获取烛台。这是我在加载csv文件后选择我想要的数据框的代码。然而,用mplfinance显示的时候,总不能通过,解决后总结出,这个问题是,如何指定pandas的dataFrame的时间戳为索引的问题。解决后记录备忘。
显示如下提示:
程序代码和出错描述
读入数据代码:
df["Date"] = pd.to_datetime(df["Date"])
start_date = "2016-02-27"
end_date = "2021-02-27"
mask = (df["Date"] >= start_date) & (df["Date"] <= end_date)
df = df.loc[mask]
df
然后,我输入了制作烛台的代码,如下所示:
import matplotlib.pyplot as plt
! pip install --upgrade mplfinance
import mplfinance as mpf
import matplotlib.dates as mpl_dates
mpf.plot(df, type = "candle", style = "charles",
title = "Bitcoin Price",
ylabel = "Price (USD$)",
volume = True,
ylabel_lower = "Shares
Traded",
mav = (3,6,9),
savefig = "chart-mplfinance.png")
执行代码后,出现如下错误提示:

合理化建议
有两种简单的方法可以确保您的数据框将pandas.DatetimeIndex作为数据框索引:
1读入数据时指定索引
调用read_csv时,指明要将哪一列用于索引,并设置kwargparse_dates=True。这将自动将日期时间列转换为DatetimeIndex对象,并将其设置为索引您可以在mplfinance存储库的示例中看到这样做,例如,单击此处,查看基本用法下,您可以在调用read_csv时看到:
index_col=0、parse_dates=True。

2读入数据后,使用数据前指定日期索引
使用pandas.DatetimeIndex构造函数。例如,取代上述出错代码,
df["Date"] = pd.to_datetime(df["Date"])
df.index = pd.DatetimeIndex(df["Date"])
注:一旦数据框具有DatetimeIndex,您就不需要在下一部分代码中使用掩码,但可以简单地按如下方式切片:
start_date = "2016-02-27"
end_date = "2021-02-27"
df = df.loc[start_date:end_date]
文章为作者独立观点,不代表股票量化交易软件接口观点