は、以下のコードを実行は、なぜ私はKeyError例外を取得しました: 'レベルが***見つからない'
def afun(group):
aa=len(group)
group.sort_values(inplace=True)
return pd.DataFrame({'score':np.arange(aa),'price':group})
df = pd.DataFrame({
'stock':np.repeat(['AAPL','GOOG','YHOO'], 3),
'date':np.tile(pd.date_range('5/5/2015', periods=3, freq='D'), 3),
'price':(np.random.randn(9).cumsum() + 10) ,
'price2':(np.random.randn(9).cumsum() + 10)})
df = df.set_index(['stock','date'])
agroupDf=df.groupby(level='date')
tt=agroupDf['price'].apply(afun)
私は私がしたいデータフレーム 'TT'
を得ましたしかし、インデックスレベルの日付を落とすtt.reset_index(level='date', drop=True,inplace=True)
私を与えるKeyError: 'Level date not found'
私はcoufused、どのように元気?
tt.reset_index(level='date', drop=True,inplace=True)
Traceback (most recent call last):
File "<ipython-input-4-493c886f0c00>", line 1, in <module>
tt.reset_index(level='date', drop=True,inplace=True)
File "D:\common\Anaconda3.4\lib\site-packages\pandas\core\frame.py", line 2920, in reset_index
level = [self.index._get_level_number(lev) for lev in level]
File "D:\common\Anaconda3.4\lib\site-packages\pandas\core\frame.py", line 2920, in <listcomp>
level = [self.index._get_level_number(lev) for lev in level]
File "D:\common\Anaconda3.4\lib\site-packages\pandas\indexes\multi.py", line 519, in _get_level_number
raise KeyError('Level %s not found' % str(level))
KeyError: 'Level date not found'
インデックス名は '' date''、 ''stock''、' 'date''です。 「tradeDate」はありません。あなたは正確に何を達成したいですか?あなたのコードはとても複雑です。それは2回同じことをしています... – Kartik
@Kartik私は申し訳ありません、 'tradeDate'は間違いです.iは編集します。 – inaMinute
[groupby.applyが重複レベルを返す理由]の複製があります。(http://stackoverflow.com/questions/38948336/why-groupby-apply-return-duplicate-level) – Merlin