我生成了一个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'等?
答案 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 ...