Как сделать фрейм данных из двух других фреймов данных и фрейм данных их соответствия - PullRequest
0 голосов
/ 18 июня 2020

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

(Pdb) df_gt_example =

            CENTER_X  CENTER_Y  VELOCITY  ACCELERATION  LENGTH  WIDTH   HEADING  TURN_RATE  CLASS
FrameId OId                                                                                       
1       0      -19.0     -11.0       1.0           0.5     2.0    2.0  0.785398        0.5    1.0
2       0      -17.0      -9.0       1.0           0.5     2.0    2.0  0.785398        0.5    1.0
0       1      -18.0      -4.0       1.0           0.5     2.0    2.0  0.785398        0.5    1.0
1       1      -17.0      -3.0       1.0           0.5     2.0    2.0  0.785398        0.5    1.0
2       1      -16.0      -2.0       1.0           0.5     2.0    2.0  0.785398        0.5    1.0
0       2      -15.0     -18.0       1.0           0.5     2.0    2.0  0.523599        0.5    1.0
1       2      -13.0     -20.0       1.0           0.5     2.0    2.0  0.523599        0.5    1.0
2       2      -13.5     -16.5       1.0           0.5     2.0    2.0  0.523599        0.5    1.0
0       3       17.0      -3.0       1.0           0.5     2.0    2.0  1.047198        0.5    1.0
1       3       17.0      -3.0       1.0           0.5     2.0    2.0  1.047198        0.5    1.0
2       3       17.0      -3.0       1.0           0.5     2.0    2.0  1.047198        0.5    1.0

У меня есть фрейм данных из вывода модели (гипотеза):

df_hp_example = 
            CENTER_X  CENTER_Y  VELOCITY  ACCELERATION  LENGTH  WIDTH    HEADING  TURN_RATE  CLASS
FrameId HId                                                                                        
0       0     -17.68     -3.68       2.0           0.8     2.1    2.1   1.570796   1.023599      1
1       0     -16.68     -2.68       2.0           0.8     2.1    2.1   1.570796   1.023599      1
2       0     -13.18    -16.18       2.0           0.8     2.1    2.1   1.308997   1.023599      1
0       1     -14.68    -17.68       2.0           0.8     2.1    2.1   1.308997   1.023599      1
1       1     -12.68    -19.68       2.0           0.8     2.1    2.1   1.308997   1.023599      1
2       1     -15.68     -1.68       2.0           0.8     2.1    2.1   1.570796   1.023599      1
1       2     -18.68    -10.68       2.0           0.8     2.1    2.1   1.570796   1.023599      1
2       2     -16.68     -8.68       2.0           0.8     2.1    2.1   1.570796   1.023599      1
0       3      37.00     17.00      21.0          20.5    22.0   22.0  21.047198  20.500000      1
1       3      22.00      2.00       6.0           5.5     7.0    7.0   6.047198   5.500000      1

Я знаю ложные положительные события, кадры, в которых есть гипостия, но нет наземной истины:

fp_events = 
   FrameId Type  OId  HId
1        0   FP  NaN  3.0
3        1   FP  NaN  3.0

Я также знаю ложно-отрицательные кадры, которые у нас есть наземная правда, но модель их пропускает:

fn_events = 
   FrameId  Type  OId  HId
0        0  MISS  3.0  NaN
2        1  MISS  3.0  NaN
4        2  MISS  3.0  NaN

Теперь мне нужно создать фрейм данных со следующими столбцами из наземной истины и гипотезы:

final_df = pd.DataFrame(columns= [FrameId, OId, HId, gt_class, hp_class, gt_CENTER_X, gt_CENTER_Y, hp_CENTER_X, hp_CENTER_Y])
  1. Для ложного срабатывания (fp_events) запросите соответствующие столбцы (FrameId, HId) из df_hp_example и заполните столбцы, касающиеся Groundtruth, с помощью np.nan (например, gt_CENTER_X, gt_CENTER_Y)
  2. Для ложного негатиева (fn_events) запросите соответствующие столбцы (FrameId, OId) из df_gt_example и заполните столбцы относительно гипотезы с np.nan (например, hp_CENTER_X, hp_CENTER_Y)

Результат будет

   gt_CLASS hp_CLASS FrameId  OId  HId  gt_CENTER_X  gt_CENTER_Y  gt_VELOCITY  gt_ACCELERATION  gt_LENGTH  gt_WIDTH  gt_HEADING  gt_TURN_RATE hp_CENTER_X hp_CENTER_Y hp_VELOCITY hp_ACCELERATION hp_LENGTH hp_WIDTH hp_HEADING hp_TURN_RATE
0       1.0      NaN       0  3.0  NaN         17.0         -3.0          1.0              0.5        2.0       2.0    1.047198           0.5         NaN         NaN         NaN             NaN       NaN      NaN        NaN          NaN
1       1.0      NaN       1  3.0  NaN         17.0         -3.0          1.0              0.5        2.0       2.0    1.047198           0.5         NaN         NaN         NaN             NaN       NaN      NaN        NaN          NaN
2       1.0      NaN       2  3.0  NaN         17.0         -3.0          1.0              0.5        2.0       2.0    1.047198           0.5         NaN         NaN         NaN             NaN       NaN      NaN        NaN          NaN
3       NaN        1       0  NaN    3          NaN          NaN          NaN              NaN        NaN       NaN         NaN           NaN          37          17          21            20.5        22       22    21.0472         20.5
4       NaN        1       1  NaN    3          NaN          NaN          NaN              NaN        NaN       NaN         NaN           NaN          22           2           6             5.5         7        7     6.0472          5.5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...