Длинный и широкий формат с GroupBy - PullRequest
0 голосов
/ 09 сентября 2018

Я пытался понять, как сделать следующее безуспешно. Я пробовал выборку, группировку ... застрял.

У меня есть следующий пример с пандой:

date             |  price  |
09/09/2018 08:30 |  22.1   |
09/09/2018 08:35 |  22.12  |
09/09/2018 08:40 |  22.20  |
09/09/2018 08:45 |  22.13  |
09/09/2018 08:50 |  22.19  |
09/09/2018 08:55 |  22.39  |

Я хочу сгруппировать даты за 15 минут и получить следующий кадр данных.

date_15          |  price_1  |  price_2  |  price 3  |
09/09/2018 08:30 |   22.1    |   22.12   |   22.20   |
09/09/2018 08:45 |   22.13   |   22.19   |   22.39   |

Тогда я бы установил set_index ('date_15') и сделал бы соединение, которое я могу сделать сам.

Не могли бы вы помочь с вышеизложенным?

1 Ответ

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

Делайте groupby в дате каждые 15 минут, используя pd.Grouper, а затем создайте новый DataFrame с результатом:

df['date'] = pd.to_datetime(df.date, errors='coerce')
v = df.groupby(pd.Grouper(key='date', freq='15min'))['price'].apply(list)

pd.DataFrame(v.tolist(), index=v.index).add_prefix('price ')

                     price 0  price 1  price 2
date                                          
2018-09-09 08:30:00    22.10    22.12    22.20
2018-09-09 08:45:00    22.13    22.19    22.39
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...