Как сделать Pandas Groupby на части многоуровневого индекса? - PullRequest
0 голосов
/ 11 октября 2018

В приведенной ниже таблице данных указаны доходы и расходы по дате и по компании.Множественный индекс устанавливается в столбцах «Дата» и «Компания».Как мы можем сгруппировать по части Date многоуровневого индекса Date-Company?

import pandas as pd
import numpy as np

eData = [['2016-06-01', 'Amazon', np.nan, 40],
         ['2016-06-01', 'Amazon', np.nan, 30],
         ['2016-07-05', 'Samsung', np.nan, 1100],
         ['2016-07-05', 'Apple', np.nan, 500],
         ['2016-07-31', 'Samsung', np.nan, 600],
         ['2016-07-31', 'Job 1', 3000, np.nan],
         ['2016-07-31', 'Job 2', 800, np.nan],
         ]
dfr = pd.DataFrame(columns=['Date', 'Company', 'REV', 'EXP'],
                 data=eData, index=[x for x in range(1, len(eData) + 1)])
dfr.fillna('',inplace=True)
dfr.set_index(['Date', 'Company'],inplace=True)
dfr.sort_index(inplace=True)
dfr

Вот вывод на ноутбуке Jupyter:

dfr DataFrame

Теперь две группы, которые работают как положено:

dfr.groupby('Company').sum()

Result

dfr.groupby(['Date', 'Company']).sum()

Result 2

Но группировка по дате не работает полностью, как вы можете видеть ниже:

dfr.groupby('Date').sum()

Error

Как решить эту проблему

...