こんにちは、
私はいくつかの基本的な集約とブームを行っていますが、いくつかの奇妙なバグが発生します。
これが要約です:
import pandas as pd
import numpy as np
idx2=[pd.to_datetime('2016-08-31 22:08:12.000') ,
pd.to_datetime('2016-08-31 22:09:12.200'),
pd.to_datetime('2016-08-31 22:20:12.400')]
test=pd.DataFrame({'quant':[1.0,1.0,3.0],
'quant2':[1.0,1.0,3.0],
'time2':[pd.to_datetime('2016-08-31 22:08:12.000') ,
pd.to_datetime('2016-08-31 22:09:12.200'),
pd.to_datetime('2016-08-31 22:20:12.400')]},
index=idx2)
test.reset_index(inplace = True)
test
Out[22]:
index quant quant2 time2
0 2016-08-31 22:08:12.000 1.0 1.0 2016-08-31 22:08:12.000
1 2016-08-31 22:09:12.200 1.0 1.0 2016-08-31 22:09:12.200
2 2016-08-31 22:20:12.400 3.0 3.0 2016-08-31 22:20:12.400
df= test.groupby(pd.Grouper(key='time2', freq='1T', closed = 'left', label = 'left'),as_index = False).agg(
{'quant' : 'sum',
'quant2' : 'sum'})
与える
File "<ipython-input-20-c09863316397>", line 19, in <module>
'quant2' : 'sum'})
File "C:\\Anaconda2\lib\site-packages\pandas\core\groupby.py", line 4036, in aggregate
return super(DataFrameGroupBy, self).aggregate(arg, *args, **kwargs)
File "C:\\Anaconda2\lib\site-packages\pandas\core\groupby.py", line 3491, in aggregate
self._insert_inaxis_grouper_inplace(result)
File "C:\\Anaconda2\lib\site-packages\pandas\core\groupby.py", line 4090, in _insert_inaxis_grouper_inplace
self.grouper.get_group_levels(),
File "C:\\Anaconda2\lib\site-packages\pandas\core\groupby.py", line 1911, in get_group_levels
if not self.compressed and len(self.groupings) == 1:
AttributeError: 'BinGrouper' object has no attribute 'compressed'
それは期待されていますか? as_index = False
がこのエラーを生成するのはなぜですか?
@randomgambit :レポートありがとうございます! 残念ながら、 df
が何であるかを指定しなかったため、これを複製することはできません。 サンプルコードでそれを提供できますか?
@randomgambit :ありがとう! そのコードを最初の問題レポートに移動してもよろしいですか? これにより、一目でも読みやすくなります。
@gfyoung何かアイデアはありますか?
cc @jreback
TimeGrouperを使用する場合、 as_index
はサポートされません。
あなたの例は同等であることに注意してください
test.resample('1T', on='time2').sum()
私はこれがうまくいくはずだと思います。
誰かがこれについてdibsを呼び出してから、3年以上が経過しましたが、簡単な回避策が必要な場合は、集計後に.reset_index()
を使用してインデックス列を独自の列に投影することができました。
df.groupby(pd.Grouper(key='date_col', freq='1d')).count().reset_index()
最も参考になるコメント
@randomgambit :ありがとう! そのコードを最初の問題レポートに移動してもよろしいですか? これにより、一目でも読みやすくなります。