回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我经常对熊猫切片操作感到困惑,比如</p>
<pre><code>import pandas as pd
raw_data = {'regiment': ['Nighthawks', 'Nighthawks', 'Nighthawks', 'Nighthawks', 'Dragoons', 'Dragoons', 'Dragoons', 'Dragoons', 'Scouts', 'Scouts', 'Scouts', 'Scouts'],
'company': ['1st', '1st', '2nd', '2nd', '1st', '1st', '2nd', '2nd','1st', '1st', '2nd', '2nd'],
'name': ['Miller', 'Jacobson', 'Ali', 'Milner', 'Cooze', 'Jacon', 'Ryaner', 'Sone', 'Sloan', 'Piger', 'Riani', 'Ali'],
'preTestScore': [4, 24, 31, 2, 3, 4, 24, 31, 2, 3, 2, 3],
'postTestScore': [25, 94, 57, 62, 70, 25, 94, 57, 62, 70, 62, 70]}
df = pd.DataFrame(raw_data, columns = ['regiment', 'company', 'name', 'preTestScore', 'postTestScore'])
def get_stats(group):
return {'min': group.min(), 'max': group.max(), 'count': group.count(), 'mean': group.mean()}
bins = [0, 25, 50, 75, 100]
group_names = ['Low', 'Okay', 'Good', 'Great']
df['categories'] = pd.cut(df['postTestScore'], bins, labels=group_names)
des = df['postTestScore'].groupby(df['categories']).apply(get_stats).unstack()
des.at['Good','mean']
</code></pre>
<p>我得到了:</p>
<blockquote>
<p>TypeError Traceback (most recent call
last) pandas/_libs/index.pyx in
pandas._libs.index.IndexEngine.get_loc()</p>
<p>pandas/_libs/hashtable_class_helper.pxi in
pandas._libs.hashtable.Int64HashTable.get_item()</p>
<p>TypeError: an integer is required</p>
</blockquote>
<p>在处理上述异常时,发生了另一个异常:</p>
<blockquote>
<p>KeyError Traceback (most recent call
last) in ()
----> 1 des.at['Good','mean']</p>
<p>C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\indexing.py in
<strong>getitem</strong>(self, key) 1867 1868 key = self._convert_key(key)
-> 1869 return self.obj._get_value(*key, takeable=self._takeable) 1870 1871 def <strong>setitem</strong>(self,
key, value):</p>
<p>C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\frame.py in
_get_value(self, index, col, takeable) 1983 1984 try:
-> 1985 return engine.get_value(series._values, index) 1986 except (TypeError, ValueError): 1987 </p>
<p>pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_value()</p>
<p>pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_value()</p>
<p>pandas/_libs/index.pyx in pandas._libs.index.IndexEngine.get_loc()</p>
<p>KeyError: 'Good'</p>
</blockquote>
<p>我该怎么做?在</p>
<p>提前谢谢。在</p>