【发布时间】:2021-04-08 09:53:41
【问题描述】:
TL;DR - 问题
我有一个基于pandas 数据框的mplfinance 图,其中索引采用格鲁吉亚日历格式,我需要将它们显示为 Jalali 格式。
我的数据和代码
我的数据如下所示:
open high low close
date
2021-03-15 67330.0 69200.0 66870.0 68720.0
2021-03-16 69190.0 71980.0 69000.0 71620.0
2021-03-17 72450.0 73170.0 71700.0 71820.0
2021-03-27 71970.0 73580.0 70000.0 73330.0
2021-03-28 73330.0 73570.0 71300.0 71850.0
... ... ... ... ...
第一列既是日期又是索引。这是mplfinance 正确绘制数据所必需的;
我可以用这样的东西来绘制:
import mplfinance as mpf
mpf.plot(chart_data.tail(7), figratio=(16,9), type="candle", style='yahoo', ylabel='', tight_layout=True, xrotation=90)
chart_data 是上面的数据,其余的几乎都是格式化的东西。
我现在拥有的
我的图表如下所示:
但是,我需要日期看起来像这样:1400-01-12。这是一个等价表,可以进一步证明我的情况。
2021-03-15 1399-12-25
2021-03-16 1399-12-26
2021-03-17 1399-12-27
2021-03-27 1400-01-07
2021-03-28 1400-01-08
我尝试过的
将 Jdates 设置为我的索引:
chart_data.index = history.jdate
mpf.plot(chart_data_j)
抛出此异常:
TypeError('Expect data.index as DatetimeIndex')
所以我尝试将 jdates 转换为 datetimes:
chart_data_j.index = pd.to_datetime(history.jdate)
抛出越界异常:
OutOfBoundsDatetime: Out of bounds nanosecond timestamp: 1398-03-18 00:00:00
所以我可能会选择更改时区/语言环境,所以我尝试按照官方文档更改时区:
pd.to_datetime(history.date).tz_localize(tz='US/Eastern')
但我得到了这个例外:
raise TypeError(f"{ax_name} is not a valid DatetimeIndex or PeriodIndex")
最后我尝试使用诸如 PersianTools 和 pandas_jalali 之类的库无济于事。
【问题讨论】:
标签: python-3.x pandas matplotlib jalali-calendar mplfinance