Рассчитайте средние значения за 6 часов для столбца в кадре данных pandas, отобразите значения в виде текста на графике - PullRequest
0 голосов
/ 01 марта 2019

Я создал базовый файл данных pandas в python, который имеет несколько столбцов.Первый столбец, который я создал, - это временная метка из нескольких столбцов, включающая информацию о дате и времени.Другие столбцы - это просто данные для каждого соответствующего времени.

Я хочу получать среднее значение этих значений каждые 6 часов, а затем отображать значения в виде текста на линейном графике, который я создал с другими данными, нов верхней части графика (так и в линиях).

Я пробовал несколько способов, я просто не могу понять, как получить среднее значение за 6 часов из столбца, а тем более добраться дошаг для построения значений.

Чтобы быть точным, мне просто нужно среднее значение за 6 часов для двух столбцов, два из которых я использую для линейного графика.Для решения в данном случае не имеет значения, какое именно.

На всякий случай, если это необходимо.Ниже приведен код, используемый для создания столбца datetime.

#convert first time columns into one datetime column
df['datetime'] = pd.to_datetime(df[['year', 'month', 'day', 'hour', 'minute', 'second']])

Данные выглядят, например, следующим образом:

267 2019-02-08 15:25:23  12.2  19.2  20.6  ...   22.4  
268 2019-02-08 15:52:48  11.7  16.8  17.8  ...   19.2  
269 2019-02-08 16:29:23  12.0  15.6  16.2  ...   17.0  
270 2019-02-08 16:47:41  11.9  15.6  16.1  ...   16.7  
271 2019-02-08 17:33:23  11.1  15.2  15.9  ...   16.7  
272 2019-02-08 17:51:39  10.8  15.0  15.7  ...   16.5  
273 2019-02-08 18:28:14  10.7  14.3  14.9  ...   15.8  
274 2019-02-08 18:46:31  10.8  14.2  14.7  ...   15.4  
275 2019-02-08 19:32:13  10.8  12.1  12.6  ...   13.1  
276 2019-02-08 19:50:33  10.1  11.8  12.3  ...   12.9  
277 2019-02-08 20:18:01   8.6  10.6  11.1  ...   11.8  
278 2019-02-08 20:44:24   8.3  10.5  11.1  ...   12.0  
279 2019-02-08 21:30:08   9.1  10.4  11.1  ...   12.3  
280 2019-02-08 21:48:26   9.0  10.4  11.2  ...   12.4  
281 2019-02-08 22:34:11   9.2  11.5  12.4  ...   13.4  
282 2019-02-08 22:52:30   8.6  12.5  13.4  ...   14.3  
283 2019-02-08 23:29:05   8.8  12.6  13.2  ...   14.2  
284 2019-02-08 23:47:23   9.3  12.2  12.8  ...   13.7  
285 2019-02-09 00:33:07   9.1  10.3  11.3  ...   12.5  
286 2019-02-09 00:51:23   7.8   8.5   9.5  ...   10.9  
287 2019-02-09 01:28:10   0.8   1.2   1.9  ...    3.0   
288 2019-02-09 01:46:50   0.6   1.2   1.9  ...    3.1   

Любая помощь будет принята.

1 Ответ

0 голосов
/ 01 марта 2019

Вы можете рассчитать среднее значение 6h следующим образом:

df.set_index('datetime').resample('6h').mean()

Это одно значение каждые 6 часов.Если вам нужно скользящее среднее, вы можете проверить pd.DataFrame.rolling.

Вот ответ , в котором говорится о построении текста, если вы используете matplotlib или пакетоснованный на этом как seaborn.Вы можете использовать дату в качестве координаты x и некоторое максимальное значение в качестве координаты y.Если вы уже используете что-то другое, вам нужно быть более конкретным в своем вопросе.

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