Pandas: рдмрдЧ: рдЯрд╛рдЗрдордмрд╛рдЙрдкрд░ рдХреЗ рд╕рд╛рде рд╕рдореВрд╣ (.., as_index = рдЧрд▓рдд)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 8 рдЕрдЧре░ 2017  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pandas-dev/pandas

рдирдорд╕реНрддреЗ,

рдореИрдВ рдХреБрдЫ рдмреБрдирд┐рдпрд╛рджреА рдПрдХрддреНрд░реАрдХрд░рдг рдФрд░ рдЙрдЫрд╛рд▓ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдХреБрдЫ рдЕрдЬреАрдм рдмрдЧ рд╣реЛрддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рд╣реИ:

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 рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

cc @jreback

TimeGrouper рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп as_index рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЖрдкрдХрд╛ рдЙрджрд╛рд╣рд░рдг рд╕рдорд╛рди рд╣реИ

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 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

tade0726 picture tade0726  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

MatzeB picture MatzeB  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

songololo picture songololo  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

idanivanov picture idanivanov  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

venuktan picture venuktan  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ