pandas.Series在pyplot.hist中引发KeyError

时间:2014-12-26 08:28:39

标签: python matplotlib pandas

我生成了一个Dataframe。我从中拉出一系列花车,然后用直方图绘制它。工作正常。

但是,当我使用以下两种描述之一生成该数据的子系列时:

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)

我刚开始搞乱熊猫。也许我没有正确的方法来做一个sql-equivalent of'select * from table of WeightClass = 83'等?

2 个答案:

答案 0 :(得分:7)

哦,解决了....传递了系列及其值属性。

plt.hist(u83.values)

有点奇怪。

作为回溯 - 现在我的任何子选择方法都有效。只是我传递的是plt.hist(u83)而不是plt.hist(u83.values) ....蹩脚。

答案 1 :(得分:0)

你可能想要这样的东西:

u83 = results.loc[results['Weight Class'] == 83, 'Wilks']
plt.hist(u83)

您可能想要阅读这些docs on indexing ...