Pandas Groupby Grouper, как мне сгруппировать даты, которые не существуют для каждой группы? - PullRequest
0 голосов
/ 12 октября 2018

Попытка построить 2-летнюю историю каждого человека в пандах.

Проблема в том, что не у всех есть данные за 2 года, часто намного меньше.

В наборе данных всехтранзакции всеми людьми, я выполняю групповую работу по датам, но pd.Grouper не выполняет групповую работу (grouperObj) .count (), если у заявителя нет истории транзакций.

Таким образом, транзакция лица Аистория будет с 1 октября 2017 года по 1 октября 2008 года, но история человека Б охватывает период с 1 октября 2016 года по 1 августа 2008 года.Я пытаюсь составить график с 01.01.2015 по 01.10.2008 для всех людей.

Как мне нормализоваться для этого?

1 Ответ

0 голосов
/ 12 октября 2018

Вы можете преобразовать дату в тип данных категории

Ввод данных

df=pd.DataFrame({'person':['A','B'],'date':['2018-09-23','2017-10-02']})

df.date=pd.to_datetime(df.date)

Решение

df.date=pd.Categorical(df.date,categories=pd.date_range(start='10/1/2017',end='10/1/2018',freq='D'))
target=pd.crosstab(df.person,df.date).stack()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...