Проблема заключается в поиске матрицы значений, где индекс и идентификатор строки хранятся в отдельном кадре данных, и сопоставлении этого значения с новым столбцом.
В настоящее время у меня есть матрица поиска значений, относящихся к к скорости и направлению ветра, где имена столбцов строк представляют собой направленные градусы, а индексом является значение скорости:
value_df:
0 2 4
0 9.7 5.6 4.0
0.1 9.8 5.7 4.1
0.2 7.1 3.6 4.4
0.3 1.1 1.2 0.9
0.4 4.1 3.3 7.5
0.5 4.3 5.8 3.6
0.6 0.6 0.7 9.8
0.7 5.4 0.1 5.4
0.8 7.0 7.4 4.0
0.9 7.9 6.6 8.9
1.0 8.9 7.6 7.4
У меня большой временной ряд:
met_data_df:
DateTime Speed Direction
1999-01-01 00:00:00 0.2 0
1999-01-01 01:00:00 0.3 4
1999-01-01 02:00:00 0.5 2
1999-01-01 03:00:00 1.0 4
1999-01-01 04:00:00 0 4
... ... ...
1999-11-02 11:00:00 0.4 0
1999-11-02 12:00:00 0.9 0
1999-11-02 13:00:00 0.7 0
1999-11-02 14:00:00 0.4 2
1999-11-02 15:00:00 0.3 4
Что я хочу сделать, это сопоставить первую матрицу со второй, где значение выбирается на основе скорости в зависимости от индекса и значения направления против метки строки.
DateTime Speed Direction Value
1999-01-01 00:00:00 0.2 0 7.1
1999-01-01 01:00:00 0.3 4 0.9
1999-01-01 02:00:00 0.5 2 5.8
1999-01-01 03:00:00 1.0 4 7.4
1999-01-01 04:00:00 0 4 ...
... ... ... ...
1999-11-02 11:00:00 0.4 0
1999-11-02 12:00:00 0.9 0
1999-11-02 13:00:00 0.7 0
1999-11-02 14:00:00 0.4 2
1999-11-02 15:00:00 0.3 4
Я попытался построить лямбда-функцию и предпринять дополнительную попытку объединения нескольких столбцов, однако мне удалось отобразить только всю строку на основе скорости ветра.
met_data_df.merge(value_df,left_on='Speed',right_index=True)