【问题标题】:TypeError: dtype '<class 'datetime.date'>' not understood ; while converting Date of DataFrame?TypeError: dtype '<class 'datetime.date'>' 不理解;在转换 DataFrame 的日期时?
【发布时间】:2020-08-19 07:19:47
【问题描述】:

我正在编写以下代码,从 yahoo Finance 获取数据并绘制数据以对股票进行技术分析。

import pandas as pd
import pandas_datareader.data as web
import datetime as dt
import matplotlib.pyplot as plt
import mpl_finance
from mpl_finance import candlestick_ohlc
import matplotlib.dates as mdates

ticker = 'MCD'
start = dt.date(2014, 1, 1)

#Gathering the data
data = web.DataReader(ticker, 'yahoo', start)


#Calc moving average
data['MA10'] = data['Adj Close'].rolling(window=10).mean()
data['MA60'] = data['Adj Close'].rolling(window=60).mean()
data.reset_index(inplace=True)
data['Date']=mdates.date2num(data['Date'].astype(dt.date))

遇到这个错误

TypeError: dtype '<class 'datetime.date'>' not understood

【问题讨论】:

    标签: python dataframe yahoo-finance


    【解决方案1】:

    如果将日期列设置为'datetime.Index'格式并将其设置为索引,将显示图表。无需转换。试试吧。要导入的库的设置已部分更正。

    import pandas as pd
    import pandas_datareader.data as web
    import datetime as dt
    import matplotlib.pyplot as plt
    import mplfinance as mpf
    from mplfinance.original_flavor import candlestick_ohlc
    import matplotlib.dates as mdates
    
    ticker = 'MCD'
    start = dt.date(2014, 1, 1)
    
    #Gathering the data
    data = web.DataReader(ticker, 'yahoo', start)
    
    #Calc moving average
    data['MA10'] = data['Adj Close'].rolling(window=10).mean()
    data['MA60'] = data['Adj Close'].rolling(window=60).mean()
    data.reset_index(inplace=True)
    # data['Date']=mdates.date2num(data['Date'].astype(dt.date))
    data['Date'] = pd.to_datetime(data['Date'])
    data.set_index('Date', inplace=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-30
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      • 2014-04-11
      • 2018-06-11
      相关资源
      最近更新 更多