Нормализовать данные по первому значению в группе - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть DataFrame из 6 миллионов строк внутридневных данных, который выглядит следующим образом:

                          closingDate      Time    Last 
1997-09-09 11:30:00-04:00  1997-09-09  11:30:00    100
1997-09-09 11:31:00-04:00  1997-09-09  11:31:00    105

Я хочу нормализовать мой столбец Last в векторизованном виде, разделив каждую строку на цену напервый ряд, который содержит этот день.Это моя попытка:

df['Last']/df.groupby('closingDate').first()['Last']

Знаменатель выглядит так:

closingDate
1997-09-09     943.25
1997-09-10     942.50
1997-09-11     928.00
1997-09-12     915.75
1997-09-14     933.00
1997-09-15     933.00

Однако, это деление просто дает мне столбец нанов.Как я могу связать подразделение, которое будет транслироваться по моему индексу DateTime?

1 Ответ

0 голосов
/ 19 декабря 2018

Обычно это хороший вариант использования для transform:

df['Last'] /= df.groupby('closingDate')['Last'].transform('first')

Результат группового вещания передается относительно исходного кадра данных, и теперь деление стало возможным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...