Pandas: Combine TimeGrouper с другим аргументом Groupby

У меня есть следующий DataFrame:

df = pd.DataFrame({ 'Branch' : 'AAAAA B'.split(), 'Buyer': 'Carl Mark Carl Joe Joe Carl'.split(), 'Quantity': [1,3,5,8,9,3], 'Date' : [ DT.datetime(2013,1,1,13,0), DT.datetime(2013,1,1,13,5), DT.datetime(2013,10,1,20,0), DT.datetime(2013,10,2,10,0), DT.datetime(2013,12,2,12,0), DT.datetime(2013,12,2,14,0), ]}) from pandas.tseries.resample import TimeGrouper 

Как я могу группировать эти данные по филиалу и в течение 20 дней с помощью TimeGrouper?

Все мои предыдущие попытки не удались, потому что я не мог комбинировать TimeGrouper с другим аргументом в функции groupby.

Я был бы очень признателен за вашу помощь.

спасибо

Энди

2 Solutions collect form web for “Pandas: Combine TimeGrouper с другим аргументом Groupby”

Из обсуждения здесь: https://github.com/pydata/pandas/issues/3791

 In [38]: df.set_index('Date').groupby(pd.TimeGrouper('6M')).apply(lambda x: x.groupby('Branch').sum()) Out[38]: Quantity Branch 2013-01-31 A 4 2014-01-31 A 22 B 3 

И еще более сложный вопрос

 In [55]: def testf(df): ....: if (df['Buyer'] == 'Mark').sum() > 0: ....: return Series(dict(quantity = df['Quantity'].sum(), buyer = 'mark')) ....: return Series(dict(quantity = df['Quantity'].sum()*100, buyer = 'other')) ....: In [56]: df.set_index('Date').groupby(pd.TimeGrouper('6M')).apply(lambda x: x.groupby('Branch').apply(testf)) Out[56]: buyer quantity Branch 2013-01-31 A mark 4 2014-01-31 A other 2200 B other 300 

Теперь вы можете использовать TimeGrouper с другим столбцом (в версии IIRC pandas версии 0.14 ):

 In [11]: df1 = df.set_index('Date') In [12]: g = df1.groupby([pd.TimeGrouper('20D'), 'Branch']) In [13]: g.sum() Out[13]: Quantity Date Branch 2013-01-01 13:00:00 A 4 2013-09-18 13:00:00 A 13 2013-11-17 13:00:00 A 9 B 3 
  • Python - Pandas - Запись Dataframe в CSV
  • Каков эквивалент cut / qcut для полей даты pandas?
  • Групповые этикетки в barplart matplotlib с использованием Pandas MultiIndex
  • Почему я не могу назначить часть моего Pandas DataFrame?
  • Как объединить данные столбца с одним и тем же значением и суммировать его конкретные данные
  • Networkx Multigraph from_pandas_dataframe
  • Как оценить, сколько памяти потребуется DataFrame Pandas?
  • Как выбрать строки в DataFrame между двумя значениями в Python Pandas?
  • Добавление существующего листа excel с новым фреймворком данных с использованием python pandas
  • Почему я не могу применить переход из функции pandas?
  • как установить значения в строки столбца с логической фильтрацией данных
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.