使用Pandas Dataframe绘制直方图,并包括其均值和标准差,出现ValueError错误。

4
我有一个Pandas数据帧,索引为日期范围,只有一列和2192行。我能够在直方图上绘制这个数据帧,但当我尝试在直方图上包含这个数据帧的均值和标准偏差时,我会在以下这些行代码处遇到ValueError错误。
#compute daily returns
daily_returns = stats.compute_daily_returns(df_btc)
#plotter.plot_data(daily_returns, title="Daily returns", ylabel="Daily returns")
print daily_returns.head()

daily_returns.replace(to_replace=np.inf, value=np.NaN, inplace=True)
# Plot a histogram
daily_returns.hist(bins=21)
plt.show()

# Get mean as standard deviation
mean = daily_returns.mean()
std = daily_returns.std()

print mean
print std

#the problem comes here  
plt.axvline(mean, color='w', linestyle='dashed', linewidth=2)

在此输入图片描述

错误出现在我在Github上的存储库中的dataextract.py文件中。

我也查看了此链接,但它没有解决我的问题。


3
http://stackoverflow.com/help/mcve - Jérôme
那么,mean = bitcoin-marker-price 1.006599?在我看来,这似乎是一个1项系列,而不是一个浮点数。 - tmdavison
在绘制axvline时,尝试使用mean[0] - tmdavison
@tom 对于 print mean,输出是 bitcoin-market-price 1.006599 dtype: float64。这看起来不像是一个只有一个项目的系列。即使是这样,我应该如何继续? - imharindersingh
@tom 非常感谢,它确实解决了问题。 :) - imharindersingh
显示剩余5条评论
1个回答

7
问题在于您尝试在axvline中使用1项系列而不是浮点数。 pandas.DataFrame.mean()是一个pandas.Series而不是浮点数。
在这种情况下,您可以通过仅取存储在Series中的值来解决它。
plt.axvline(mean[0], color='w', linestyle='dashed', linewidth=2)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接