Pandas: BUG: groupby (..، as_index = False) مع TimeGrouper

تم إنشاؤها على ٨ أغسطس ٢٠١٧  ·  6تعليقات  ·  مصدر: pandas-dev/pandas

أهلا،

أقوم ببعض التجميع والازدهار الأساسيين ، تحدث بعض الأخطاء الغريبة.
هنا هو reprex:

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 هذا الخطأ؟

Bug Groupby Resample

التعليق الأكثر فائدة

@ randomgambit : شكرا! هل تمانع في نقل هذا الرمز إلى تقرير المشكلة الأولي الخاص بك؟ هذا سيجعل من السهل علينا القراءة ، حتى في لمحة.

ال 6 كومينتر

randomgambit : شكرا على التقرير! للأسف ، لا يمكننا تكرار هذا لأنك لم تحدد ما هو df . هل يمكنك تقديم ذلك في نموذج التعليمات البرمجية الخاص بك؟

@ randomgambit : شكرا! هل تمانع في نقل هذا الرمز إلى تقرير المشكلة الأولي الخاص بك؟ هذا سيجعل من السهل علينا القراءة ، حتى في لمحة.

gfyoung أي أفكار؟

ccjreback

as_index غير مدعوم عند استخدام TimeGrouper.

لاحظ أن المثال الخاص بك يعادل

test.resample('1T', on='time2').sum()

أعتقد أن هذا يجب أن يعمل.

لقد مرت أكثر من 3 سنوات منذ أن دعا شخص ما dibs حول هذا الأمر ، ولكن إذا كنت تريد حلًا سريعًا ، فقد تمكنت من عرض عمود الفهرس على العمود الخاص به باستخدام .reset_index() بعد التجميع:

df.groupby(pd.Grouper(key='date_col', freq='1d')).count().reset_index()
هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات