я имею первую таблицу с исходными данными, с помощью всего два колонками time
и temperature
:группы заказных периодов времени
time temperature
40953 2015-01-01 12:00:00.493000 88.75951
40954 2015-01-01 12:01:00.494000 88.76033
40955 2015-01-01 12:02:00.495000 88.75979
40956 2015-01-01 12:03:00.480000 88.75938
40957 2015-01-01 12:04:00.496000 88.75944
40958 2015-01-01 12:05:00.497000 88.76046
40959 2015-01-01 12:06:00.560000 88.76008
40960 2015-01-01 12:07:00.498000 88.75940
40961 2015-01-01 12:08:00.484000 88.75938
40962 2015-01-01 12:09:00.484000 88.75933
...
то у меня есть вторая таблица с периодами приема данных.
start stop
run
248523 2015-01-05 16:13:09 2015-01-05 17:42:17
248529 2015-01-05 17:47:03 2015-01-05 18:29:27
248530 2015-01-05 18:30:24 2015-01-05 18:33:24
248531 2015-01-05 18:39:31 2015-01-05 18:40:31
248532 2015-01-05 18:43:57 2015-01-06 09:00:17
...
Как вы можете видеть, прогоны не смежны: многие измерения температуры не принадлежат ни одному прогону. Гораздо больше данных, чем периодов.
Что мне нужно сделать, так это вычислить среднюю температуру для каждого прогона, усредняя все измерения температуры, относящиеся к пробегу. Я предполагаю, что первый шаг - присоединиться к двум таблицам, но я не могу выразить предикат «time
между start
и stop
». Предложения?
Да, это похоже, но на самом деле я не уверен, что мне нужно объединить две таблицы. Мне нужно только среднее. Я не забочусь о измерениях, которые не вписываются ни в какой интервал –
После того, как вы отметили каждую строку первой таблицы с помощью параметра interval_id, вы можете вычислить среднее значение для каждого бина следующим образом: df.groupby (' interval_id '). mean() (думаю, было бы неплохо сначала удалить любые строки, которые не вписываются ни в какой промежуток времени.) – DalekSec
уверен, но это не кажется мне оптимальным решением , Например, теперь я делаю обратное: я перебираю таблицу периодов, и каждый период я нахожу данные, которые соответствуют, и я накапливаю данные для вычисления среднего значения. Присоединение не требуется. –