сравнивать значения столбцов только с одинаковыми датами и временем - PullRequest
0 голосов
/ 14 апреля 2020

У меня длинный df с 07:00:00 до 20:00:00 (df1) и короткий df только с долями длинного (df2) (идентичные значения индекса даты и времени).

Я хотел бы сравнить значения группового размера двух фреймов данных.

Значения индекса даты, идентификатора, x и y должны быть идентичны.

Могу ли я это сделать?

df1:

Out[180]: 

date                     id       gs   x    y                                          
2019-10-09 07:38:22.139  3166     nan  248  233
2019-10-09 07:38:25.259  3166     nan  252  235
2019-10-09 07:38:27.419  3166     nan  253  231
2019-10-09 07:38:30.299  3166     nan  251  232
2019-10-09 07:38:32.379  3166     nan  251  233
2019-10-09 07:38:37.179  3166     nan  228  245
2019-10-09 07:39:49.498  3167     nan  289  253
2019-10-09 07:40:19.099  3168     nan  288  217
2019-10-09 07:40:38.779  3169     nan  278  139
2019-10-09 07:40:39.899  3169     nan  279  183
...
2019-10-09 19:52:53.959  5725     nan  190  180
2019-10-09 19:52:56.439  5725     nan  193  185
2019-10-09 19:52:58.919  5725     nan  204  220
2019-10-09 19:53:06.440  5804     nan  190  198
2019-10-09 19:53:08.919  5804     nan  200  170
2019-10-09 19:53:11.419  5804     nan  265  209
2019-10-09 19:53:16.460  5789     nan  292  218
2019-10-09 19:53:36.460  5806     nan  284  190
2019-10-09 19:54:08.939  5807     nan  404  226
2019-10-09 19:54:23.979  5808     nan  395  131

df2:

Out[181]: 

date                     id    gs   x    y                                       
2019-10-09 11:20:01.418  3479  2.0  353  118.0
2019-10-09 11:20:01.418  3477  2.0  315   92.0
2019-10-09 11:20:01.418  3473  2.0  351  176.0
2019-10-09 11:20:01.418  3476  2.0  318  176.0
2019-10-09 11:20:01.418  3386  0.0  148  255.0
2019-10-09 11:20:01.418  3390  0.0  146  118.0
2019-10-09 11:20:01.418  3447  0.0  469  167.0
2019-10-09 11:20:03.898  3447  0.0  466  169.0
2019-10-09 11:20:03.898  3390  0.0  139  119.0
2019-10-09 11:20:03.898  3477  2.0  316   93.0

Ожидаемым выводом должен быть кадр данных со столбцами "date", "id", "x", "y", " gs (df1) "," gs (df2) "

1 Ответ

1 голос
/ 14 апреля 2020

Выполните слияние, когда все равно, но обязательно сбросьте индекс, чтобы его часть условия слияния

df1_t = df1.reset_index()
df2_t = df1.reset_index()

results = df1_t.merge(df2_t, left_on = ['date', 'ids', 'x', 'y'],
                      right_on = ['date', 'ids', 'x', 'y'], 
                      indicator = True).reset_index()

print(results)

results имела строки в df1, которые находятся в df2.

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