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) 解决了。
我有一个包含收盘价的数据框:
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) 解决了。