TL;DR - 问题
我有一个mplfinance
基于数据框的图pandas
,其中索引采用格鲁吉亚日历格式,我需要将它们显示为 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转换为datetime
s:
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 等库无济于事。