我对Python很陌生,所以请原谅我的任何愚蠢。
我正在使用matplotlib运行直方图并在使用子集数据时出错,如果我使用完整数据集,代码可以正常工作,因此我感到困惑。
也许我没有正确分组?
我的代码如下,相关错误如下,谢谢。
导入所需的包:
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
阅读数据:
mlb=pd.read_csv('C:\Users\ocmh\Desktop\Python\Batting.csv')
查看数据样本:
mlb.head()
将数据子集以返回波士顿数据:
mlb_bos=mlb[(mlb['teamID'] == 'BOS')]
查看子集数据的示例:
mlb_bos.head()
绘制原始数据的直方图:并且效果很好
plt.hist(mlb.AB.dropna, color= sns.desaturate("indianred",1))
绘制子集数据的直方图:返回错误(错误在下面)
plt.hist(mlb_bos.AB.dropna, color= sns.desaturate("indianred",1))
如果你没有安装seaborn包,你可以放弃color = sns.desaturate(“indianred”,1),因为这纯粹是为了美观。
以下错误:
KeyError Traceback (most recent call last)
<ipython-input-11-1484047d7ac6> in <module>()
----> 1 plt.hist(mlb_bos.AB, color=color)
/Users/mattoconnell/anaconda/lib/python3.4/site-packages/matplotlib/pyplot.py in hist(x, bins, range, normed, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, hold, **kwargs)
2894 histtype=histtype, align=align, orientation=orientation,
2895 rwidth=rwidth, log=log, color=color, label=label,
-> 2896 stacked=stacked, **kwargs)
2897 draw_if_interactive()
2898 finally:
/Users/mattoconnell/anaconda/lib/python3.4/site-packages/matplotlib/axes/_axes.py in hist(self, x, bins, range, normed, weights, cumulative, bottom, histtype, align, orientation, rwidth, log, color, label, stacked, **kwargs)
5602 # Massage 'x' for processing.
5603 # NOTE: Be sure any changes here is also done below to 'weights'
-> 5604 if isinstance(x, np.ndarray) or not iterable(x[0]):
5605 # TODO: support masked arrays;
5606 x = np.asarray(x)
/Users/mattoconnell/anaconda/lib/python3.4/site-packages/pandas/core/series.py in __getitem__(self, key)
512 def __getitem__(self, key):
513 try:
--> 514 result = self.index.get_value(self, key)
515
516 if not np.isscalar(result):
/Users/mattoconnell/anaconda/lib/python3.4/site-packages/pandas/core/index.py in get_value(self, series, key)
1458
1459 try:
-> 1460 return self._engine.get_value(s, k)
1461 except KeyError as e1:
1462 if len(self) > 0 and self.inferred_type in ['integer','boolean']:
pandas/index.pyx in pandas.index.IndexEngine.get_value (pandas/index.c:3113)()
pandas/index.pyx in pandas.index.IndexEngine.get_value (pandas/index.c:2844)()
pandas/index.pyx in pandas.index.IndexEngine.get_loc (pandas/index.c:3704)()
pandas/hashtable.pyx in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:7255)()
pandas/hashtable.pyx in pandas.hashtable.Int64HashTable.get_item (pandas/hashtable.c:7193)()
KeyError: 0