Удалите указанные c столбцы в кадре данных с тем же идентификатором на условии даты - PullRequest
1 голос
/ 15 марта 2020

У меня есть два набора данных:

  1. Один содержит сертификаты энергии дома, выданные за последние 10 лет, с идентификатором дома и датой его выдачи. В одном доме может быть выдано больше сертификатов, поскольку они могут продлевать его.
  2. В другом домике содержатся все транзакции домов за последние 10 лет и идентификатор (такой же идентификатор, как в первом наборе данных)

Я объединил их, используя

mergeALL= pd.merge(mergeTranDwelling,EnergySimple, left_on=['matrikkel2019', "bygningsnr"], right_on=['matrikkel2019', 'Bygningsnummer'], how='inner')

Затем я получил что-то вроде этого (фрагмент кода данных):


transaction_id  address_id  official_date   certificate     issued_date
83866285    1157600091      2016-05-25      A2012-278940    17.12.2012 17:44:17
83866285    1157600091      2016-05-25      A2012-278941    17.12.2012 17:48:35
83866285    1157600091      2016-05-25      A2016-638538    22.02.2016 10:16:12
83866285    1157600091      2016-05-25      A2016-638577    22.02.2016 10:22:45
83866285    1157600091      2016-05-25      A2019-1065662   21.10.2019 15:39:30



Поскольку каждый дом может иметь несколько значений сертификатов энергии к каждой транзакции можно прикрепить несколько сертификатов. Я хочу, чтобы каждый action_id имел сертификат с .Did_Date , который находится ближе всего, но до official_date . В приведенном выше случае я хочу удалить все сертификаты для этого tranasction_id , за исключением:

83866285    1157600091      2016-05-25      A2016-638577    22.02.2016 10:22:45

Я пытался использовать это решение: { ссылка }, но у меня есть чтобы объединить наборы данных в двух столбцах (matrikkel2019, bygningsr), поэтому я не могу использовать merge.asof.

Я также открыт для выполнения слияния другим способом (это еще один вопрос о той же проблеме: Слияние двух DataFrames (наборов данных) в указанном столбце c ID, но с условием Date )

1 Ответ

1 голос
/ 15 марта 2020

Расширена ваша df с еще одним адресом. 1006 * Выход -

   3        83866285  1157600091    2016-05-25   A2016-638577 2016-02-22 10:22:45
   9        83866286  1157600093    2019-05-25  A2019-1065662 2019-11-21 15:39:30
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...