Объединить панды данных кадров на основе условия? - PullRequest
2 голосов
/ 28 июня 2019

Привет, у меня есть два кадра данных, как показано ниже: df_com и df_tra соответственно

Event Type  Event Type  ID  Time_Comptel    Distance_Comptel    Fibre Line  Event Date  Event Date
0   Digging Manual Digging  11988339    2019-06-26 12:27:44 444.83  Helios 1012, Channel 2  2019-06-26  2019-06-28
1   Digging Manual Digging  11988337    2019-06-26 12:22:10 447.55  Helios 1012, Channel 2  2019-06-26  2019-06-28
2   Digging Manual Digging  11988336    2019-06-26 12:26:50 446.19  Helios 1012, Channel 2  2019-06-26  2019-06-28
3   Digging Manual Digging  11988335    2019-06-26 12:22:13 447.55  Helios 1012, Channel 2  2019-06-26  2019-06-28
4   Digging Manual Digging  11988334    2019-06-26 12:10:05 446.87  Helios 1012, Channel 2  2019-06-26  2019-06-28


Alarm ID    Event Type  Event Type  Event Date  Event Date  Position    Distance_Tranzmeo   Event Channel   Event Time  Time_Tranzmeo
0   454.0   Digging Manual Digging  2019-06-26  2019-06-28  43.0    0.293   1.0 06:09 am    2019-06-28 06:09:00
1   455.0   Digging Manual Digging  2019-06-26  2019-06-28  2585.0  17.594  1.0 06:09 am    2019-06-28 06:09:00
2   456.0   Digging Manual Digging  2019-06-26  2019-06-28  2585.0  17.594  1.0 06:50 am    2019-06-28 06:50:00
3   457.0   Digging Manual Digging  2019-06-26  2019-06-28  45.0    0.306   1.0 07:04 am    2019-06-28 07:04:00
4   458.0   Digging Manual Digging  2019-06-26  2019-06-28  44.0    0.299   1.0 07:26 am    2019-06-28 07:26:00

Мне нравится создавать другой фрейм данных таким образом, чтобы Time_Comptel был близок к Time_Tranzmeo (любая строка не обязательно должна быть соответствующей строкой) (близкое значение означает, что максимальное различие между ними должно быть + или - 1 час и Distance_Comptel и Distance_tranzmeo также должен закрыться (+ или - 100).

Соедините столбцы с такими строками в разумных пределах и добавьте их к кадру данных (df_match), а остальные добавьте к другому файлу данных (df_nomatch). Как это возможно? Извините, я пока не могу придумать Идеи, сам проверяю соответствующие строки, которые получаю, но мне нужно сравнить каждую комбинацию. Как это можно сделать.

Note: Time_Tranzmeo is the last column in dataframe 2

Если я недооценил что-то, пожалуйста, дайте мне знать в комментариях

...