Объединить строки во фрейме данных Pandas, которые происходят в течение 30 дней - PullRequest
0 голосов
/ 07 декабря 2018

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

df_raw = pd.DataFrame({"id": [1,1,1,2,2], "date": [pd.Timestamp(2002,1,1), pd.Timestamp(2002,1,28), pd.Timestamp(2002,2,1), pd.Timestamp(2003,5,5),pd.Timestamp(2003,5,28)],"value_1": [10,20,30,40,50], "value_2": [60,70,np.nan,np.nan,100]})

Я хочу добиться следующего:

  1. Строки с одинаковым идентификатором и датами которых максимум 30необходимо объединить дни друг от друга.
  2. Объединение произойдет таким образом, что будут взяты значения из строки, чья дата является более поздней, а также дата.
  3. Если вв более поздней строке пропущены значения, значения должны быть взяты из строки, дата которой является менее новой.
  4. Для каждой строки, которая может быть объединена, всегда проверяйте, можем ли мы объединить строку со строкой, которая имеет большенедавняя датаЕсли это так, объедините его с этим.
  5. Максимальное объединение двух строк.Если две строки объединены, попробуйте объединить их со следующей строкой, если хотя бы одна строка также находится в диапазоне 30 дней.

Итак, получаемые данные должны быть:

df_processed = pd.DataFrame({"id": [1,1,2], "date": [pd.Timestamp(2002,1,1), pd.Timestamp(2002,2,1), pd.Timestamp(2003,5,28)], "value_1": [10, 30,50], "value_2": [60, 70,100]})

Отказ от ответственности: это упрощенная версия того, чего я действительно хочу достичь, поэтому у меня могут быть некоторые дополнительные вопросы.

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