Как создать индексный столбец с groupby в пандах - PullRequest
1 голос
/ 14 октября 2019

У меня есть следующий фрейм данных

import pandas as pd
 tmp = pd.DataFrame({'date':['2018-08-31','2018-07-30','2018-07-30','2018-07-31']})

Я хотел бы создать новый столбец в фрейме данных tmp, который будет увеличиваться, начиная с 1 для минимального date ибудет увеличиваться по мере увеличения даты.

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

         date  idx
0  2018-08-31    3
1  2018-07-30    1
2  2018-07-30    1
3  2018-07-31    2

Есть идеи?

1 Ответ

2 голосов
/ 14 октября 2019

Преобразовать столбец в дату, использовать Series.rank и преобразовать в целые числа:

tmp['date'] = pd.to_datetime(tmp['date'])
tmp['idx'] = tmp['date'].rank(method='dense').astype(int)
print (tmp)
        date  idx
0 2018-08-31    3
1 2018-07-30    1
2 2018-07-30    1
3 2018-07-31    2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...