我正在查看US names dataset(SSA),正如Wes McKinney在Python中为数据分析所描述的那样。
这个有效:
total_births = top1000.pivot_table('births', index = 'year', columns = 'name', aggfunc = sum)
subset = total_births[['Michael', 'Mike', 'Martin']].fillna(0)
subset.plot( title = 'Number of births per year', grid = True, figsize=(28,20), xticks=range(1880, 2020, 5)).get_figure().savefig('output2.png', bbox_inches = 'tight')
但是,当我添加一个不受欢迎的名称时,它仍然在数据集中:
subset = total_births[['Michael', 'Mike', 'Martin', 'Ammar']].fillna(0)
…我得到以下错误:
Traceback (most recent call last):
File "names.py", line 44, in <module>
subset = total_births[['Michael', 'Mike', 'Martin', 'Ammar']].fillna(0)
File "/home/mike/anaconda/lib/python2.7/site-packages/pandas/core/frame.py", line 1774, in __getitem__
return self._getitem_array(key)
File "/home/mike/anaconda/lib/python2.7/site-packages/pandas/core/frame.py", line 1818, in _getitem_array
indexer = self.ix._convert_to_indexer(key, axis=1)
File "/home/mike/anaconda/lib/python2.7/site-packages/pandas/core/indexing.py", line 1143, in _convert_to_indexer
raise KeyError('%s not in index' % objarr[mask])
KeyError: "['Ammar'] not in index"
我试着添加fillna(0),但是没有帮助。。。此代码可在https://github.com/m1key/data-science-sandbox(ade55154f177410e1e269d64766a4e8b8e1ae585)上找到,有问题的行将被注释掉。
样本数据集:
name Aaden Aaliyah Aanya Aarav Aaron Aarush Ab Abagail Abb Abbey \
year
1880 NaN NaN NaN NaN 102 NaN NaN NaN NaN NaN
1881 NaN NaN NaN NaN 94 NaN NaN NaN NaN NaN
1882 NaN NaN NaN NaN 85 NaN NaN NaN NaN NaN
1883 NaN NaN NaN NaN 105 NaN NaN NaN NaN NaN
1884 NaN NaN NaN NaN 97 NaN NaN NaN NaN NaN
name ... Zoa Zoe Zoey Zoie Zola Zollie Zona Zora Zula Zuri
year ...
1880 ... 8 23 NaN NaN 7 NaN 8 28 27 NaN
1881 ... NaN 22 NaN NaN 10 NaN 9 21 27 NaN
1882 ... 8 25 NaN NaN 9 NaN 17 32 21 NaN
1883 ... NaN 23 NaN NaN 10 NaN 11 35 25 NaN
1884 ... 13 31 NaN NaN 14 6 8 58 27 NaN
谢谢你的提示。
Ammar似乎不在您的数据集中。
为了重复检查,请尝试
'Ammar' in total_births.columns
,它将返回一个布尔值(True
或False
)相关问题 更多 >
编程相关推荐