Построение передискретизированных данных в морском заливе - PullRequest
0 голосов
/ 28 августа 2018

У меня есть пандас с некоторыми финансовыми операциями. Один из столбцов - «Дата». Я пересчитал ежедневные данные в месяцы.

transfers_all.set_index(pd.DatetimeIndex(transfers_all['Date']), inplace = True)

monthly = transfers_all.resample('M')

Однако, когда я пытаюсь построить эти данные с Seaborn, вот так

monthly_plot = sns.lineplot(data = monthly,
                      x = 'Date',
                      y = 'Amount'
                      )

Я получаю ошибку:

AttributeError: у объекта «DatetimeIndexResampler» нет атрибута «get»

Если я попытаюсь построить весь фрейм данных, на оси x отображаются дни, но я хочу сгруппировать их по месяцам. Есть ли способ выполнить повторную выборку из Seaborn или заставить Seaborn работать с моими пересчитанными данными?

Выполнение print (transfers_all.head().to_dict()) дает следующий вывод:

{'Дополнительные замечания': {Метка времени ('2017-01-02 00:00:00'): nan}, 'Фактор данных': {Метка времени ('2017-01-02 00:00:00') : nan}, 'Факторы данных': {Timestamp ('2017-01-02 00:00:00'): '-'}, 'Date': {Timestamp ('2017-01-02 00:00:00' ): Метка времени ('2017-01-02 00:00:00')}, 'описание расходов': {метка времени ('2017-01-02 00:00:00'): 'Opłata za zlecenie stałe'}, ' Категория (тег) расходов ': {Отметка времени (' 2017-01-02 00:00:00 '):' ADMIN '},' Komu zwrot ': {Отметка времени (' 2017-01-02 00:00:00 ') : 'KG'}, 'Kwota (PLN)': {Timestamp ('2017-01-02 00:00:00'): 3.0}, 'Kwota VAT (PLN)': {Timestamp ('2017-01-02 00:00:00 '): nan},' Kwota w walucie oryginalnej ': {Timestamp (' 2017-01-02 00:00:00 '): nan},' Nazwa sprzedawcy ': {Timestamp (' 2017-01 -02 00:00:00 '):' - '},' Numer faktury ': {Timestamp (' 2017-01-02 00:00:00 '):' - '},' Opis wydatku ': {Timestamp ( '2017-01-02 00:00:00'): nan}}

1 Ответ

0 голосов
/ 28 августа 2018

Я думаю, что нужна какая-то агрегатная функция, например sum, mean с reset_index для столбца из DatetimeIndex:

transfers_all['Date'] = pd.to_datetime(transfers_all['Date'])
monthly = transfers_all.resample('M', on='Date').size().reset_index(name='count')

monthly_plot = sns.lineplot(data = monthly,
                      x = 'Date',
                      y = 'count'
                      )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...