【问题标题】:KeyError when annotating on plot in python在python中注释绘图时出现KeyError
【发布时间】:2020-07-14 20:21:12
【问题描述】:

我有以下代码:

import pandas as pd
import datetime as date
from pandas_datareader import data as web
from pandas.tseries.offsets import *
import matplotlib as mpl
import matplotlib.pyplot as plt
import mplcursors


start = date.datetime(2018,1,1)
end = date.datetime.today()

xl_file = pd.read_excel(r'C:\Users\user\randomdates.xlsx')
xl_file.set_index("Date", inplace = True)
xl_file.index = pd.to_datetime(xl_file.index, format='%Y-%m-%d')

stock = 'BTC-USD'
data = web.DataReader(stock, 'yahoo', start, end)
fig , ax = plt.subplots(figsize=(18, 4))

data.plot(y='Close', ax = ax)
newdates = xl_file.loc[start:end]
for anotate in (xl_file.index):
    ax.annotate(anotate, xy=(anotate, data['Close'].loc[anotate]),  xycoords='data',
                xytext=(-30, 40), textcoords='offset points',
                size=13, ha='center', va="baseline",
                bbox=dict(boxstyle="round", alpha=0.1),
                arrowprops=dict(arrowstyle="wedge,tail_width=0.5", alpha=0.1)); 

我提到的excel文件中有以下条目:

日期是随机的,我使用以下 excel 公式得到这些日期:

=RANDBETWEEN(DATE(2018, 1, 1),DATE(2019, 10, 20))

由于某种原因,该图是为 pandas_datareader 生成的,但它不是图上的 annotating。我不断收到以下错误,不知道该怎么做:

KeyError: 1514764800000000000

请告知我该怎么做才能解决此错误。

【问题讨论】:

    标签: python python-3.x pandas datetime annotations


    【解决方案1】:

    尝试使用名为 pandas.to_datetime() 的 Pandas 内置方法来处理日期,这会将您的列转换为日期格式。

    这是一个很好的参考:

    https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_datetime.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 2019-11-27
      • 1970-01-01
      • 2019-04-27
      • 2023-03-12
      • 1970-01-01
      • 2016-01-16
      相关资源
      最近更新 更多