Как сгруппировать столбец даты в год и суммировать столбец расходов по году? - PullRequest
0 голосов
/ 30 сентября 2018

Я пытаюсь сгруппировать свои данные по годам и суммировать расходы по годам, к которым они принадлежат.

Вот пример данных:

date:            spend_amt:

2/1/2014          10000

2/5/2014           98

1/2/2015          5834.2

7/8/2017          561236

9/3/2017          568

28/1/2016         989895.3

Мой текущий код

def yearlySpending(self):

    dfspendingYearly = pd.DataFrame()
    dfspendingYearly = self.dfGov.groupby(["date"])['spend_amt'].agg('sum')
    dfspendingYearly.groupby(dfspendingYearly["date"].dt.year)['spend_amt'].agg(['sum'])

Я получил ошибку, 'KeyError:' date ''

Желаемый вывод

date:       spend_amt:
2014        10098
2015        5834.2
2016        989895.3
2017        561804

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Ваша ошибка означает, что нет столбца date, я думаю, что index называется date:

df.index = pd.to_datetime(df.index)
dfspendingYearly = df.groupby(df.index.year).sum().reset_index()
print (dfspendingYearly)
   date  spend_amt
0  2014    10098.0
1  2015     5834.2
2  2016   989895.3
3  2017   561804.0
0 голосов
/ 30 сентября 2018

преобразовать ваш столбец с датой в дату и сгруппировать фрейм данных по году

возможно дублирование группировка по году

df["date:"] = pd.to_datetime(df['date:'])
df.groupby(df['date:'].dt.year).sum().reset_index()

Out:

    date:   spend_amt:
0   2014    10098.0
1   2015    5834.2
2   2016    989895.3
3   2017    561804.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...