Pandas 使用来自 DataReader 的股票数据时出现错误 "No numeric data to plot"

Pandas error "No numeric data to plot" when using stock data from datareader

我有一个包含收盘价的数据框:

import pandas as pd 
import numpy as np
import matplotlib.pyplot as plt
import seaborn; seaborn.set()
from pandas_datareader import data
import pandas_datareader.data as web
from pandas.tseries.offsets import BDay

f = web.DataReader('^DJI', 'stooq')
CLOSE = f['Close']
CLOSE.plot(alpha= 0.5,style='-')
CLOSE.resample('BA').mean().plot(style=':') 
CLOSE.asfreq(freq='BA').plot(style='--') 
plt.legend(['input','resample','asfreq'],loc='upper left')

使用 resample() 我得到了前一年的平均值。这行得通。 使用 asfreq() 我尝试在年底获得收盘价。这是行不通的。 我在 asfreq() 行中收到以下错误:TypeError: no numeric data to plot

f.info() 显示 close 是一个非空的 float64 类型。

有什么问题吗?

索引未按层次排序:

f= f.sort_index(axis=0) 解决了。