У меня есть набор данных, который составляется ежемесячно, и каждый месяц имеет N-количество учетных записей. У некоторых месяцев будут новые учетные записи, а некоторые учетные записи исчезнут через определенный месяц (это делается случайным образом).
Мне нужно получить баланс текущего месяца в аккаунте и вычесть его из баланса предыдущего месяца (если этот счет существовал в предыдущем месяце), в противном случае он будет равен балансу текущего месяца.
Мне предлагали присоединяться каждый месяц. т. е. присоединяйтесь к месяцу от 1 до месяца 2, от месяца 2 до месяца 3 и т. д. c Но я не совсем уверен, как это будет go ...
Вот пример набора данных:
|date |account |balance |
----------------------------------
|01.01.2019|1 |40 |
|01.01.2019|2 |33 |
|01.01.2019|3 |31 |
|01.02.2019|1 |32 |
|01.02.2019|2 |56 |
|01.02.2019|4 |89 |
|01.03.2019|2 |12 |
|01.03.2019|4 |35 |
|01.03.2019|5 |76 |
|01.03.2019|6 |47 |
----------------------------------
Идентификатор аккаунта уникален для каждого ушедшего, текущего и нового прихода Счет.
Сначала я использовал f.lag, но теперь, когда есть аккаунты, которые исчезают и приходят новые, количество аккаунтов в месяц не является постоянным, поэтому я не могу отставать. Как я уже сказал, мне предложили использовать join. То есть присоединиться к январю в февраль, февраль к марту и т. Д. c.
Но я не совсем уверен, как это будет go. У кого-нибудь есть идеи?
PS Я создал эту таблицу с примером оставшейся учетной записи, новой учетной записи и учетной записи, удаленной из более поздних месяцев.
Конец цель:
|date |account |balance | balance_diff_with_previous_month |
--------------------------------------------------------------------|
|01.01.2019|1 |40 |na |
|01.01.2019|2 |33 |na |
|01.01.2019|3 |31 |na |
|01.02.2019|1 |32 |-8 |
|01.02.2019|2 |56 |23 |
|01.02.2019|4 |89 |89 |
|01.03.2019|2 |12 |-44 |
|01.03.2019|4 |35 |-54 |
|01.03.2019|5 |76 |76 |
|01.03.2019|6 |47 |47 |
--------------------------------------------------------------------|
Как я уже сказал, f.lag не может использоваться, потому что число учетных записей в месяц не является постоянным, и я не контролирую количество учетных записей, поэтому не могу f.lag постоянное количество строк.
Кто-нибудь имеет какие-либо идеи о том, как объединить в учетной записи и / или дате (текущий месяц) с датой-1 (предыдущий месяц)?
Спасибо за чтение и помощь: )