我生成一个数据框。我从中拉出一系列 float ,并将其绘制成直方图。工作正常。
但是当我使用以下两种描述之一生成该数据的子系列时:
u83 = results['Wilks'][results['Weight Class'] == 83]
u83 = results[results['Weight Class'] == 83]['Wilks']
pyplot.hist 在该系列上抛出 KeyError。
#this works fine
plt.hist(results['Wilks'], bins=bins)
# type is <class 'pandas.core.series.Series'>
print(type(results['Wilks']))
# type is <type 'numpy.float64'>
print(type(results['Wilks'][0]))
#this histogram fails with a KeyError for both of these selectors:
u83 = results['Wilks'][results['Weight Class'] == 83]
u83 = results[results['Weight Class'] == 83]['Wilks']
print u83
#type is <class 'pandas.core.series.Series'>
print(type(u83))
#plt.hist(u83) fails with a KeyError
plt.hist(u83)
我刚开始玩 Pandas。也许我没有找到正确的方法来执行“select * from table where WeightClass = 83”等 sql 等价物?
最佳答案
哦,解决了....传递系列及其值属性。
plt.hist(u83.values)
有点奇怪。
作为回溯——现在我的任何子选择方法都起作用了。只是我传递的是 plt.hist(u83)
而不是 plt.hist(u83.values)
....有点蹩脚。
关于python - pandas.Series 在 pyplot.hist 中引发 KeyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27654702/